如果条件按顺序,Mysql不能使用mysql

时间:2015-05-11 20:48:30

标签: mysql sql-order-by

我想写一个像这样的选择

if(`order` > 0)
    Order BY category_id, arder
if(`order` = 0)
    Order BY id

但是在这个选择中不起作用

SELECT *  from post 
ORDER BY if(`order` > 0,  ( category_id, `order`) ,  id)

1 个答案:

答案 0 :(得分:0)

“如果”是一个表达式返回一个值,我认为你不能用它来改变“order by”语句本身。

您可以尝试这样的事情:

select *, case when order>0 then category_id else 0 end cat_id, id
from post
order by cat_id, order, id