Задать вопрос
mrusklon
@mrusklon
Не получается? Яростно гугли!

Как сделать сортировку в sql но чтоб одна строка была сверху списка?

есть значит запросец у меня в котором я делаю сортировку всех строк (mysql)
ORDER BY `date` ASC
а мне надо еще как то сделать чтоб только 1 строка у корой id = (беру из post) была сверху списка
пробую вот так
ORDER BY `date` ASC, id = '$curUserId'
но что то не то, подскажите пожалуйста
  • Вопрос задан
  • 682 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Очевидно, что раз id является более приоритетным признаком сортировки, то он и должен идти впереди. Ну и, поскольку TRUE эквивалентно 1, а FALSE - 0, то сортировка по такому условию должна идти в обратном порядке.
ORDER BY `id` = :id DESC, `date`
При этом стоит учесть, что индекс при такой сортировке работать не будет. Возможно, что выгоднее будет отдельно получить эту строку, отдельно остальные строки.
Ответ написан
Комментировать
@nozzy
Symfony, Laravel, SQL, Python, Telegram
SELECT * FROM T
WHERE id = '$curUserId'
UNION
SELECT * FROM T
WHERE id <> '$curUserId'
ORDER BY `date` ASC
Ответ написан
@VeryLongAgoDid
Всё возможно
Я бы посоветовал обернуть результат и сделать сортировку уже в нём с применением FIELD
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы