mysql 实际应用场景case...when
2013-11-29 16:47
781 查看
背景:同事有个需求,需要按照某个字段的值划分区间,之后按照区间进行排序。第一反应是用if,后来想想if有点没转出来,就改成case...when了
因为sql语句中用到了between...and,又有同事说between...and可能比<=,>=这样慢一些,于是用mysql的explain分析了两条sql
解析后的图如上,结论的话就见仁见智吧(我请教的大神说,sql分析一样,效率就应该是一样的,不会有区别)。
SELECT goods_id, sort_order, CASE WHEN sort_order IS NULL THEN 0 WHEN sort_order < 80 THEN 1 WHEN sort_order BETWEEN 80 and 160 THEN 2 ELSE 3 END AS order_level FROM ecm_market_activity_apply WHERE goods_id > 0 ORDER BY order_level DESC,sort_order DESC
因为sql语句中用到了between...and,又有同事说between...and可能比<=,>=这样慢一些,于是用mysql的explain分析了两条sql
EXPLAIN SELECT * FROM ecm_goods WHERE goods_id BETWEEN 290000 AND 310000
EXPLAIN SELECT * FROM ecm_goods WHERE goods_id >= 290000 AND goods_id <= 310000
解析后的图如上,结论的话就见仁见智吧(我请教的大神说,sql分析一样,效率就应该是一样的,不会有区别)。
相关文章推荐
- sqlcase when 实际应用
- mysql中的case when的应用
- MySQL在实际场景应用中的问题和思路
- MySQL数量查询(Case When 应用)
- MySql 性能调优之case when then
- java Hashcode实际应用场景
- MySQL有哪些存储引擎,各自的优缺点,应用场景
- MySQL复制 -- 应用场景
- Android RxJava实际应用案例讲解:使用RxJava的最佳开发场景
- Redis实际应用场景
- REDIS 在电商中的实际应用场景(转)
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- MySQL巧用sum,case...when...优化统计查询
- SQL语句行列转换两种方法 case ...when 和pivot函数应用
- mysql case when then 使用
- RxJava + Retrofit 的实际应用场景
- MySQL- Case When 用法
- mysql case when
- 基于MySQL存储引擎加触发器的应用场景
- MySQL 的CASE WHEN 语句使用说明