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 解决吗?
尝试以下查询。放置将匹配不在所需数组中的记录的内部查询。然后分组并计算确切的元素
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 个元素
我搜索了一个 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 解决吗?
尝试以下查询。放置将匹配不在所需数组中的记录的内部查询。然后分组并计算确切的元素
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 个元素