Предпочтения в sql запросе

Есть запрос вида

SELECT * FROM Table WHERE accepted = true or id = 1

Как написать такой запрос что бы сначала искал по accepted, если не нашел accepted = true, то искал по id?


Ответы (1 шт):

Автор решения: teran

такую логику можно выстроить примерно так.

SELECT * 
FROM t
WHERE accepted = 1

UNION 

SELECT *
FROM t
WHERE id = 1 
     AND 0 = ( select count(*) from t where accepted = 1) 

но проще, навреное обойтись выборкой данных по обоим условиям и сортировкой по обоим полям. Или вообще выполнять два запроса в клиенте.

→ Ссылка