gpt4 book ai didi

mysql - 选择其中一列的值不同的 3 个最新记录

转载 作者:IT老高 更新时间:2023-10-28 12:57:24 26 4
gpt4 key购买 nike

我有下表:

    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 个最近的记录(按时间降序),它们的 otheridentifier 是不同的。所以在这种情况下,结果将是 id 的:5、4 和 2。

id = 3 将被跳过,因为有一个更新的记录具有相同的 otheridentifier 字段。

这是我尝试做的:

SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3

但是,我最终得到了 id = 5、31 的行,而不是预期的 5、4、2。

有人能告诉我为什么这个查询不会返回我所期望的吗?我尝试将 ORDER BY 更改为 ASC,但这只是将返回的行重新排列为 1、3、5。

最佳答案

它不会返回您期望的结果,因为分组发生在排序之前,正如 SQL 语句中子句的位置所反射(reflect)的那样。不幸的是,你将不得不变得更漂亮才能获得你想要的行。试试这个:

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 个最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/924494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com