MySql & quot; заказ по & quot; что подписанный пользователь создал Stack Overflow

У меня есть простая таблица с сообщениями.

id | name | description | created_by

Я пытаюсь заказать его по create_by, но созданный_идентификатор — это идентификатор пользователя. Скажем, номер 10 Результатом должны быть посты, созданные пользователем, который вошел в систему, должны быть первыми сверху.

ORDER BY created_by

Проблема в том, что есть данные «create_by», меньшие, как 1, 2, 3 … и они отображаются вверху. Есть идеи, как заказать посты, созданные подписанным пользователем?

1

Решение

Использование:

ORDER BY created_by = :logged_in_user DESC

Сравнение оценивает 1 когда это правда, 0 когда оно ложно, то в первую очередь будут помещены те, которые соответствуют идентификатору зарегистрированного пользователя.

1

Другие решения

В этом случае вам нужно передать @user_id в качестве параметра

SELECT *
FROM yourTable
ORDER BY CASE WHEN created_by = @user_id
THEN -1
ELSE created_by
END
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector