微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在MySQL中按名称分组之前按日期和时间排序

如何解决在MySQL中按名称分组之前按日期和时间排序

另一种方法

SELECT * 
FROM (
    SELECT * FROM table_name
    ORDER BY date ASC, time ASC 
) AS sub
GROUP BY name

GROUP BY在其找到的第一个匹配结果上进行分组。如果第一个匹配的碰巧恰好是您想要的匹配,那么一切都会按预期进行。

我更喜欢这种方法,因为子查询具有逻辑意义,而不是在其他条件下使用它。

解决方法

我有这样一张桌子:

name    date         time
tom | 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之前!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。