Я ищу решение MySQL для сбора запросов, который содержит некоторые целые числа (идентификаторы в массиве).
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
В этом примере таблицы мне нужно id2 = 0 (потому что нет совпадения)
Мои тесты с IN (2,5) или Group by не были успешными — это можно решить с помощью 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;
Здесь я добавил рассчитывать (id2
) = 2 потому что у вас есть 2 элемента в массиве
Других решений пока нет …