mysql позиция заказа DESC, но ставится первым, если position = "chef" - PullRequest
5 голосов
/ 02 января 2012

проблема: позиция заказа mysql DESC, но ставится первым, если position = "chef" Я хочу заказать по убыванию, но сначала поставлю некоторые вещи. Как синтаксис для этого?

Ответы [ 2 ]

11 голосов
/ 02 января 2012
ORDER BY
   CASE 
     WHEN position="chef" THEN 0
     ELSE 1 
   END,
   position DESC

Добавление большего количества КОГДА условий позволяет вам расставить приоритеты для некоторых позиций

ORDER BY
   CASE 
     WHEN position="chef" THEN 0  -- first
     WHEN position="dogsbody" THEN 99 -- last
     ELSE 1 
   END,
   position DESC
2 голосов
/ 10 августа 2012
SELECT * FROM mytable ORDER BY column1='Put This First' DESC, column1;

Сначала будут помещены строки с column1='Put This First', а затем все упорядочено по столбцу 1.

SELECT * FROM mytable ORDER BY column1=1 DESC, column2;

Это еще один пример. Сначала поместит строки в column1=1, затем упорядочит остальные строки в соответствии со значением столбца 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...