Вы можете агрегировать и использовать условное max
для упорядочения, например, так:
select type
from likes
group by likes
order by max(case when id_user = 1425 then 1 else 0 end), type
Если какая-либо строка для данного type
имеет id_user
, который соответствует выбранному значению, условное max
возвращает 1
, который ставит его последним в наборе результатов. Второй критерий порядка нарушает связи для групп, которые не удовлетворяют условию.
Если вы используете MySQL, вы можете немного упростить предложение order by
:
order by max(id_user = 1425), type