MySQL order by 条件排序 if/case...when
2019-01-17 17:59
2847 查看
1、常规语法查询结果展示:
- select * from prod_bread;
- 目标:针对1,执行排序处理,期望得到以下的查询结果,即:
1)当arrange_sn 大于0时,按照 arrange_sn 升序排列,id 降序排列;
2)若arrange_sn 等于0,则排到末尾,id 同样降序排列。
那么SQL实现如下:
SELECT * FROM prod_bread ORDER BY IF ( arrange_sn > 0, 0, 1 ), arrange_sn ASC, id DESC;
其效果等同于 case…when 语句
SELECT * FROM `prod_bread` ORDER BY CASE `prod_bread`.`arrange_sn` WHEN `prod_bread`.`arrange_sn` > 0 THEN 0 ELSE 1 END, `prod_bread`.`arrange_sn`, `prod_bread`.`id` DESC;
相关文章推荐
- mysql order by case when 多条件排序
- Oracle order by case when 多条件排序
- mysql 数据库中 WHERE / ORDER BY/GROUP BY/LIMIT 几个限制条件的排序
- sqlserver使用order by case when进行优先级排序
- order by case when then end指定排序
- mysql order by case when
- SQL关于LEFT JOIN + SUM + IFNULL + GROUP BY + ORDER BY + CASE WHEN 的一些测试
- mysql order by case when
- Oracle 利用order by + case when 实现排序,置顶
- mysql 5.7.15 union order by 子查询排序不生效
- MYSQL order by排序与索引关系总结
- MySQL中if case条件语句基本用法
- mysql order by 排序 varchar 类型数据
- mysql order by if
- mysql order by 中文 排序
- MySQL排序:SELECT ORDER BY
- mysql order by 条件的值如果相同引发的bug
- MySql中的自定义排序 order by field()
- MYSQL ifnull 函数 、if判断 、case when、 locate函数
- MySQL Order By 关键词排序