我有两个字段的表:id,数字
我想检查表中是否已存在相同的数组值(等1,2,5,6),但它们必须具有相同的第1行号(id)。
我已经尝试过这个sql查询,但是这个没有检查是否有相同的id:
SELECT id, numbers FROM `table` WHERE numbers IN (1,2,5,6) AND id = id
我知道“id = id”不起作用,但我发布了它,所以你会明白我的意思。
答案 0 :(得分: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