0

我有两个字段的表:id,数字

我想检查表中是否已经存在相同的数组值(等 1、2、5、6),但它们必须具有相同的第一行号(id)。

我试过这个 sql 查询,但是这个不检查是否有相同的 id:

SELECT id, numbers FROM `table` WHERE numbers IN (1,2,5,6) AND id = id

我知道“id = id”不起作用,但我发布了它,所以你会明白我的意思。

4

1 回答 1

1
SELECT id, COUNT(*) num_count, GROUP_CONCAT(numbers ORDER BY numbers) all_numbers
FROM `table`
WHERE numbers IN (1, 2, 5, 6)
GROUP BY id

如果您只想查看具有全部 4 个数字的数字,请添加:

HAVING num_count = 4

如果您想要所有且只有这 4 个数字的 ID,请使用:

SELECT id, COUNT(*) all_count, SUM(numbers IN (1, 2, 5, 6)) in_count
FROM `table`
GROUP BY id
HAVING all_count = in_count
于 2013-06-30T08:06:44.413 回答