MySQL - 检查是否存在具有相同id的数组值

时间:2013-06-30 08:02:36

标签: mysql

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

1 个答案:

答案 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