gpt4 book ai didi

MYSQL 排序 GROUP BY

转载 作者:行者123 更新时间:2023-11-29 14:32:57 26 4
gpt4 key购买 nike

我使用 GROUP BY 只为共享相同“cat_no”值的所有条目选择一行,因为 GROUP BY 检索随机行,我需要使用 ORDER BY ABS(track) 来确保它选择的是数据库中的轨道编号“1”。然而,一旦我有了这组结果,我实际上需要按数据库中另一个字段的“日期”获得最终订单,但我似乎无法订购两次。

SELECT * FROM cds  
WHERE genre='rock'
GROUP BY cat_no
ORDER BY date DESC,ABS(track) DESC
LIMIT 0,3

Sql 仅遵循第一个 order by 子句,在本例中为“date”,如果我交换它们,则使用“track”并忽略“date”

表格

genre cat_no  track  date
rock 001 1 09323123
rock 001 2 09323123
rock 001 bundle 09323123
rock 002 1 09323123
rock 002 2 09323123
rock 002 bundle 09323123
rock 003 1 09323123
rock 003 2 09323123
rock 003 bundle 09323123

最佳答案

如果您始终想要轨道 1,则无需分组:

SELECT * FROM cds
WHERE genre = 'rock' AND track = 1
ORDER BY date DESC
LIMIT 0, 3

如果您想要第一首轨道(不一定是轨道 1),那么您需要一个子查询:

SELECT * FROM cds c
WHERE genre = 'rock'
AND track = (
SELECT MIN(track) FROM cds innerq
WHERE innerq.cat_no = c.cat_no
LIMIT 1
)
ORDER BY date DESC
LIMIT 0, 3

关于MYSQL 排序 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673342/

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