sql >> Database >  >> RDS >> Mysql

MySQL Selecteren op nieuwste tijdstempel

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

Bewerken:

Trouwens, voor het geval je benieuwd bent waarom je oorspronkelijke zoekopdracht niet werkte, laten we de stukjes opsplitsen:

  • selecteer wat dingen uit my_table ...
  • waar user_2 =22
  • en timestamp =(wat waarde, laten we het even opzij zetten)
  • limiet 1

Nu terugkomend op dat timestamp waarde, komt van uw subquery:

SELECT MAX( timestamp ) FROM my_table

Merk op dat deze subquery geen rijen beperkt op basis van user_2 -- het vraagt ​​wat de maximale tijdstempel is in de hele tabel . Dat maximale tijdstempel is het eerste in uw tabel hierboven:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).

Laten we dat dus terugkoppelen naar de zoekopdracht op het hoogste niveau:

  • selecteer wat dingen uit my_table ...
  • waar user_2 =22
  • en tijdstempel =2012-08-10 22:00:00
  • limiet 1

... en je kunt zien dat er niet zo'n rij is.



  1. (+) =operator in oracle sql in where-clausule

  2. Maak een gepartitioneerde tabel in SQL Server (T-SQL)

  3. SQL MAX() voor beginners

  4. SQL Server 2016:Designer bekijken