SQL在分组查询时,怎么获取最新一条记录?

发布于 2022-09-06 02:07:11 字数 1060 浏览 20 评论 0

数据表设计如下:

clipboard.png

clipboard.png

SQL语句:

SELECT * FROM `xds_message` WHERE  `user_id` = '0a9064ba-711f-5049-9300-c0cc88e1edf7'  AND `delete_time` = 0 GROUP BY to_user_id ORDER BY create_time ASC

结果如下:

clipboard.png

当我把排序规则改为create_time DESC,结果如下

clipboard.png

有没有办法分组时按照时间create_time排序,目前分组后content的值都是第一个,能不能分组按照create_time排序或者获取最新一个?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷乱花海 2022-09-13 02:07:12

select * from (SELECT * FROM xds_message WHERE  user_id = '0a9064ba-711f-5049-9300-c0cc88e1edf7' AND delete_time = 0 ORDER BY create_time DESC) AS msg_temp GROUP BY msg_temp.to_user_id;
无所的.畏惧 2022-09-13 02:07:12

操作上来说,先排序后分组即可,但是这个不同的数据库实现表现不一定一致,但是mysql是这样子的

农村范ル 2022-09-13 02:07:12

可以用recordid=1来得到,oracle 是可以,mysql和oracle应该是差不多的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文