У меня есть таблица, содержащая поля group_id и group_type, и я хочу запросить таблицу для всех записей, имеющих любой кортеж (идентификатор группы, тип группы) из списка кортежей. Например, я хочу иметь возможность сделать что-то вроде:
SELECT *
FROM mytable
WHERE (group_id, group_type) IN (("1234-567", 2), ("4321-765", 3), ("1111-222", 5))
Очень похожий вопрос уже задан по адресу с использованием кортежей в разделе sql in, но предлагаемое там решение предполагает, что список кортежей должен быть выбран из другой таблицы. В моем случае это не работает, так что значения кортежей жестко закодированы.
Одним из решений является использование конкатенации строк:
SELECT *
FROM mytable
WHERE group_id + STR(group_type, 1) IN ("1234-5672", "4321-7653", "1111-2225")
Но проблема в том, что таблица довольно большая и делает конкатенацию строк, и преобразование для каждой записи будет очень дорого.
Любое предложение?