У меня есть простая таблица с сообщениями.
id | name | description | created_by
Я пытаюсь заказать его по create_by, но созданный_идентификатор — это идентификатор пользователя. Скажем, номер 10
Результатом должны быть посты, созданные пользователем, который вошел в систему, должны быть первыми сверху.
ORDER BY created_by
Проблема в том, что есть данные «create_by», меньшие, как 1, 2, 3 … и они отображаются вверху. Есть идеи, как заказать посты, созданные подписанным пользователем?
Использование:
ORDER BY created_by = :logged_in_user DESC
Сравнение оценивает 1
когда это правда, 0
когда оно ложно, то в первую очередь будут помещены те, которые соответствуют идентификатору зарегистрированного пользователя.
В этом случае вам нужно передать @user_id в качестве параметра
SELECT *
FROM yourTable
ORDER BY CASE WHEN created_by = @user_id
THEN -1
ELSE created_by
END