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

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

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

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

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

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

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

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

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