我想写一个像这样的选择
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)
答案 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