问题:mysql订单位置DESC但是如果position =“chef”则放在第一位 我想订购下降,但先放一些东西。这个语法怎么样?
答案 0 :(得分:11)
ORDER BY
CASE
WHEN position="chef" THEN 0
ELSE 1
END,
position DESC
添加更多WHEN条件允许您确定某些位置的优先级
ORDER BY
CASE
WHEN position="chef" THEN 0 -- first
WHEN position="dogsbody" THEN 99 -- last
ELSE 1
END,
position DESC
答案 1 :(得分:2)
SELECT * FROM mytable ORDER BY column1='Put This First' DESC, column1;
这将首先放置column1='Put This First'
的行,然后根据column1继续订购其他所有内容。
SELECT * FROM mytable ORDER BY column1=1 DESC, column2;
这是另一个例子。将行放在column1=1
的第一位,然后根据column2的值对其余行进行排序。