我有两个字段的表: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”不起作用,但我发布了它,所以你会明白我的意思。
我有两个字段的表: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”不起作用,但我发布了它,所以你会明白我的意思。
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