如果条件按顺序,Mysql不能使用mysql
16lz
2021-01-22
I want to write a select like this
我想写一个像这样的选择
if(`order` > 0)
Order BY category_id, arder
if(`order` = 0)
Order BY id
But in this select does not work
但在这个选择不起作用
SELECT * from post
ORDER BY if(`order` > 0, ( category_id, `order`) , id)
1 个解决方案
#1
"If" is an expression returns a value, I don't think you can use it to change the "order by" statement itself.
“如果”是一个表达式返回一个值,我认为你不能用它来改变“order by”语句本身。
You can try something like this:
你可以尝试这样的事情:
select *, case when order>0 then category_id else 0 end cat_id, id
from post
order by cat_id, order, id
更多相关文章
- MySQL 绿色版基本设置语句
- MySQL表格查询基本语句2
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
- mysql添加外键语句
- Mysql语句 AND 和 OR 的运用
- MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 用$传
- 使用MySQL正则表达式 __MySQL必知必会
- MySQL搜索优化(用子查询替换长正则表达式)
- MySql 优化之like语句