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
Chỉnh sửa:
Nhân tiện, trong trường hợp bạn tò mò tại sao truy vấn ban đầu của mình không hoạt động, hãy chia nhỏ các phần:
- chọn một số nội dung từ
my_table
... - where
user_2
=22 - và
timestamp
= (một số giá trị, hãy tạm gác nó sang một bên) - giới hạn 1
Bây giờ, quay lại timestamp
đó giá trị, nó đến từ truy vấn con của bạn:
SELECT MAX( timestamp ) FROM my_table
Lưu ý rằng truy vấn con này không hạn chế bất kỳ hàng nào dựa trên user_2
- nó yêu cầu dấu thời gian tối đa trong toàn bộ bảng . Dấu thời gian tối đa đó là dấu thời gian đầu tiên trong bảng của bạn ở trên:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).
Vì vậy, hãy chuyển nó trở lại truy vấn cấp cao nhất:
- chọn một số nội dung từ
my_table
... - nơi người dùng_2 =22
- và dấu thời gian = 2012-08-10 22:00:00
- giới hạn 1
... và bạn có thể thấy không có hàng nào như vậy.