【发布时间】:2016-05-23 13:37:00
【问题描述】:
我有一个表messages,其中包含以下字段:
id、surname、name、message、message_date
我正在尝试编写正确的查询,以便显示按surname 分组并按日期降序排序的所有行(我希望该组仅显示最近的记录,基于message_date)。
例如,如果我有以下记录:
- 1, John Doe, my message, 2016-04-24 11:13:24
- 2, Johnny Doe, hello, 2016-05-22 15:23:05
- 3, John Doe, another message, 2016-05-23 16:10:07
我想得到以下结果:
- 3, John Doe, another message, 2016-05-23 16:10:07
- 2, Johnny Doe, hello, 2016-05-22 15:23:05
我尝试使用以下查询,但无法正常工作:
$sql="SELECT *
FROM messages
WHERE (id, surname, name, message, message_date) IN (
SELECT id, surname, name, message, MAX(message_date)
FROM messages
GROUP BY surname)";
谢谢!
【问题讨论】:
-
你试过加
ORDER BY message_date DESC吗? -
@jakob 那有什么帮助?
标签: mysql sorting group-by sql-order-by