我想在数据库中搜索数字的第一个唯一ID。假设我正在搜索数字:721、969、337。所有这些数字在DB中至少有3个条目,例如:

id, number, name
1, 721, valueA
2, 721, valueB
3, 721, valueC
4, 969, valueD
5, 969, valueE
6, 969, valueF
7, 969, valueG
8, 337, valueH
9, 337, valueI
10, 337, valueJ


所以我想获取每个数字721(1),969(4),337(8)的ID(可以是最低的ID,但我不介意)。任何想法,我可以为此使用单独的查询,但我希望有使用一个的解决方案?

最佳答案

如果您只想要每个数字的最小ID:

SELECT number, MIN(id) id FROM mytable GROUP BY number


如果您想要整个记录:

SELECT id, number, name
FROM mytable t
WHERE NOT EXISTS (
    SELECT 1
    FROM mytable t1
    WHERE t1.number = t.number AND t1.id < t.id
)


或者,如果您正在运行MySQL 8.0:

SELECT id, number, name
FROM (
    SELECT t.* ROW_NUMBER() OVER(PARTITON BY number ORDER by id) rn FROM mytable t
) x
WHERE rn = 1

关于mysql - 如何为数字选择第一个唯一ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58063068/

10-13 07:58
查看更多