Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Pilih Berdasarkan Timestamp Terbaru

SELECT * FROM my_table -- standard stuff
   WHERE user_2 = 22 -- predicate
   ORDER BY timestamp DESC -- this means highest number (most recent) first
   LIMIT 1; -- just want the first row

Sunting:

Omong-omong, jika Anda penasaran mengapa kueri asli Anda tidak berfungsi, mari kita uraikan bagian-bagiannya:

  • pilih beberapa item dari my_table ...
  • di mana user_2 =22
  • dan timestamp =(beberapa nilai, mari kita kesampingkan untuk saat ini)
  • batas 1

Sekarang, kembali ke timestamp itu nilai, itu berasal dari subquery Anda:

SELECT MAX( timestamp ) FROM my_table

Perhatikan bahwa subkueri ini tidak membatasi baris apa pun berdasarkan user_2 -- ia menanyakan berapa stempel waktu maksimum di seluruh tabel . Stempel waktu maksimum tersebut adalah yang pertama dalam tabel Anda di atas:(pengguna_1 =23, pengguna_2 =25, stempel waktu =10-08-2012 22:00:00).

Jadi, mari sambungkan kembali ke kueri tingkat atas:

  • pilih beberapa item dari my_table ...
  • di mana pengguna_2 =22
  • dan stempel waktu =10-08-2012 22:00:00
  • batas 1

... dan Anda dapat melihat bahwa tidak ada baris seperti itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Adakah cara untuk menghindari pengurutan file ketika pesanan berdasarkan berbeda dengan klausa where?

  2. Tambah dan kurangi nilai baris sebesar 1 di MySQL

  3. Contoh CURRENT_TIME – MySQL

  4. PHP dan MySQL tanggal terkecil dan terbesar yang mungkin

  5. kesalahan konektivitas php MySql