Результат SQL-запроса с содержит значения из массива

Я ищу решение 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?

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

-1

Решение

Попробуйте следующий запрос. Поставьте внутренний запрос, который будет соответствовать записям, которых нет в нужном массиве. Затем сгруппируйте и посчитайте точный элемент

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 элемента в массиве

DEMO

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector