SQL 包含数组值的查询结果

SQL Query result with contains values from an array

我搜索了一个 MySQL 解决方案来收集查询,其中包含一些整数(数组中的 ID)。

Example-Table:

id1 id2 id3
1   2   2
2   3   2
3   3   5
4   4   2
5   4   5
6   4   7

我有一个像

这样的数组
$id3array = (2,5);

我需要 id2 = 3(不是 4,因为 id2 "4" 还有一个 id3 参数 (7)

如果我有一个像

这样的数组
$id3array = (2,5,6); // array can contains 20 and more arguments

在这个例子中Table我需要id2 = 0(因为没有匹配)

我对 IN(2,5) 或分组依据的测试不成功 - 这可以用 MySQL 解决吗?

http://www.sqlfiddle.com/#!9/b71306/2

尝试以下查询。放置将匹配不在所需数组中的记录的内部查询。然后分组并计算确切的元素

SELECT `id2` FROM `exampletable` WHERE `id3` IN (2,5) AND `id2` NOT IN (
  SELECT e.id2 from exampletable e WHERE e.id3 not in (2,5))  GROUP BY `id2` 
HAVING count(`id2`) = 2;

这里我添加了 count(id2) = 2 因为数组中有 2 个元素

DEMO