Выполнить выборку при условии

 where (an.id = '{$n['id']}' or id >= (SELECT MAX(id)  FROM `history`) - 1)

Возможно ли в выборке выставлять условие? То есть если в таблице присутствует запись с id

Выполняем:

an.id = '{$n['id']}'

Если нету, выполняем выборку:

 id >= (SELECT MAX(id)  FROM `history`) - 1

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

Автор решения: Roman-Stop RU aggression in UA

Приблизительно так:

(
  select 1 as sort_col, t.*
  from t
  where an.id = '{$n['id']}'
)
union all
(
  select 2 as sort_col, t.*
  from t
  where id >= (SELECT MAX(id)  FROM `history`) - 1
)
order by sort_col
limit 1
→ Ссылка