在MySQL中按名称分组之前按日期和时间排序
我有这样一张桌子:
name date timetom | 2011-07-04 | 01:09:52
tom | 2011-07-04 | 01:09:52
mad | 2011-07-04 | 02:10:53
mad | 2009-06-03 | 00:01:01
我首先要最早的名字:
SELECT * ORDER BY date ASC, time ASC
GROUP BY name
(->不起作用!)
现在它应该让我先发疯(早点约会),然后再给汤姆
但是有了GROUP BY name ORDER BY date ASC, time ASC
,我会先得到新的疯子,因为它会在排序之前先分组!
再次:问题是我无法在分组之前按日期和时间排序,因为GROUP BY必须在ORDER BY之前!
回答:
另一种方法:
SELECT * FROM (
SELECT * FROM table_name
ORDER BY date ASC, time ASC
) AS sub
GROUP BY name
GROUP BY在其找到的第一个匹配结果上进行分组。如果第一个匹配的碰巧恰好是您想要的匹配,那么一切都会按预期进行。
我更喜欢这种方法,因为子查询具有逻辑意义,而不是在其他条件下使用它。
以上是 在MySQL中按名称分组之前按日期和时间排序 的全部内容, 来源链接: utcz.com/qa/427432.html