Задать вопрос
@wwspb

Можно ли использовать WHERE IN в запросах MySQL с набором полей?

Нужно выбрать все записи из таблицы по значению 2-х полей, входящих в определенный набор значений.

Можно ли использовать WHERE IN подобным образом:

SELECT *
FROM table
WHERE (id, name) IN ((value11, value12), (value21, value22), (value31, value32))

Ни в каких доках на подобное описание данного условного оператора не наткнулся. MySQL запросы выполнят, но вот Doctrine ругается на такое использование, что вызвало кучу сомнений по поводу валидности таких запросов.
Подскажите, являются ли правильными такие запросы? Может кто сталкивался с описанием подобного использования?
  • Вопрос задан
  • 721 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
Не проще ли сделать left join ?
Ответ написан
@Draconian
Oracle Developer
По-моему, это не корректный запрос, согласно стандарта SQL.
Почему бы id и name не фильтровать отдельно?
Т.е.:
SELECT * 
FROM table
WHERE id in (...) AND name in (...);

В чем у вас необходимость именно такие пары использовать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы