Запрос на 2 условия

Рейтинг: 2Ответов: 3Опубликовано: 18.09.2014

Как составить запрос на такой выбор:

Выбрать запись с id=5, и если такой нет, то с id=3.

SELECT * FROM tableName WHERE id IN (5,3);

возвращает и 5, и 3.

Ответы

▲ 5Принят
SELECT * FROM tableName WHERE id IN(5,3) ORDER BY id LIMIT 1;
▲ 2

Если предпочитаемый ID всегда больше (или всегда меньше) непредпочитаемого, то можно сортировать по ID (order by) и выбирать только первую запись (limit).

Или забирать все данные и потом в приложении выбирать более предпочитаемые.

▲ 1
SELECT * FROM `tableName` WHERE `id` = 5
UNION
SELECT * FROM `tableName` WHERE `id` = 3 AND NOT EXISTS (SELECT * FROM `tableName` WHERE `id` = 5);