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.