Запрос с сортировкой - MySQL
Формулировка задачи:
Есть в базе записи с полем status, запрос выглядит следующим образом
Тип status tinyint, предполагаемые значения 0,1,2,3
Нужно чтобы записи извлекались в таком порядке: 1,2,3,0
Ноль всегда должен быть последним. Как составить правильно запрос чтобы выполнить эти условия...
PS. orm, laravel
SELECT * FROM `member` ORDER BY 'status' DESC
Решение задачи: «Запрос с сортировкой»
textual
Листинг программы
SELECT * FROM `member` ORDER BY CASE `status` WHEN 0 THEN 99999 ELSE `status` END
Объяснение кода листинга программы
Вот список действий, которые выполняются в данном коде:
- Выборка всех столбцов из таблицы
member
с помощью оператораSELECT *
. - Сортировка результатов запроса с помощью оператора
ORDER BY
. - Использование оператора
CASE
для определения, как следует сортировать значения столбцаstatus
. - Если значение столбца
status
равно 0, то оно будет отсортировано в порядке убывания (99999). - В противном случае, значение столбца
status
будет отсортировано в порядке возрастания. - Вывод отсортированных результатов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д