mysql – 选择一个列的值不同的3个最新记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 选择一个列的值不同的3个最新记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1002字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 选择一个列的值不同的3个最新记录](/upload/InfoBanner/zyjiaocheng/891/b7c5698452234557913ff0d13446d40e.jpg)
我有下表:
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
我想要做的是选择3个最近的记录(按时间desc),其他标识符是不同的.所以在这种情况下,结果将是id:5,4和2.
将跳过id = 3,因为有一个更近期的记录具有相同的otheridentifier字段.
这是我试图做的事情:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
但是,我最终获得了id = 5,3和1的行而不是预期的5,4,2行.
有人能告诉我为什么这个查询不会返回我的预期吗?我尝试将ORDER BY更改为ASC,但这只是将返回的行重新排列为1,3,5.
解决方法:
它没有返回您期望的内容,因为在排序之前发生了分组,正如SQL语句中子句的位置所反映的那样.不幸的是,你必须得到更好的方法来获得你想要的行.试试这个:
SELECT *
FROM `table`
WHERE `id` = (
SELECT `id`
FROM `table` as `alt`
WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
ORDER BY `time` DESC
LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3
内容总结
以上是互联网集市为您收集整理的mysql – 选择一个列的值不同的3个最新记录全部内容,希望文章能够帮你解决mysql – 选择一个列的值不同的3个最新记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。