Запрос на 2 условия
Как составить запрос на такой выбор:
Выбрать запись с id=5
, и если такой нет, то с id=3
.
SELECT * FROM tableName WHERE id IN (5,3);
возвращает и 5, и 3.
Источник: Stack Overflow на русском
Как составить запрос на такой выбор:
Выбрать запись с id=5
, и если такой нет, то с id=3
.
SELECT * FROM tableName WHERE id IN (5,3);
возвращает и 5, и 3.
SELECT * FROM tableName WHERE id IN(5,3) ORDER BY id LIMIT 1;
Если предпочитаемый ID всегда больше (или всегда меньше) непредпочитаемого, то можно сортировать по ID (order by) и выбирать только первую запись (limit).
Или забирать все данные и потом в приложении выбирать более предпочитаемые.
SELECT * FROM `tableName` WHERE `id` = 5
UNION
SELECT * FROM `tableName` WHERE `id` = 3 AND NOT EXISTS (SELECT * FROM `tableName` WHERE `id` = 5);