gpt4 book ai didi

MySQL - 如果行重复,则仅返回第一个

转载 作者:行者123 更新时间:2023-11-29 07:57:33 25 4
gpt4 key购买 nike

我有一个 MySQL 表“结果”,其中包含以下字段:

id (PK, AI), user_id (FK), date, score, time

我希望能够查询此表,以便它按分数(降序)和时间(升序)的顺序排序并返回字段。所以类似:

SELECT * FROM results ORDER BY score DESC, time ASC.

但是,经过此排序后,如果多行具有相同的 user_id,我只想包含最高的行。

我该怎么做?

最佳答案

您可以使用不存在来做到这一点:

SELECT *
FROM results r
WHERE NOT EXISTS (select 1 from results r2 where r2.user_id = r.user_id and r2.id > r.id)
ORDER BY score DESC;

这对于 results(user_id, id) 上的索引效果最好。

关于MySQL - 如果行重复,则仅返回第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715244/

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