mysql case when 查询一个效率问题
问题描述
第一种:
SELECT `user`.username, `user`.email, `user`.id AS user_id, user_class.level_id, user_class.class_id AS cid, user_class.create_time AS bontime, class.graduation_time, class.offline_graduation_time, class.is_baidan, class. NAME AS class, class.period_id, class.offline_period_id, company. NAME AS branch, company.id AS bidFROM `user_class`INNER JOIN `user` ON user_class.user_id = `user`.idINNER JOIN class ON user_class.class_id = class.idLEFT JOIN company ON class.company_id = company.idLEFT JOIN period ON class.period_id = period.idWHERE class. DISABLE = 1AND class.is_baidan IN (’1’, ’2’)AND `user_class`.level_id IN (’10’, ’12’, ’14’)AND CASEWHEN is_baidan = 1 THEN class.graduation_time=0 OR class.graduation_time > 1469980800WHEN is_baidan = 2 THEN class.offline_graduation_time = 0 OR class.offline_graduation_time > 1469980800END;
第二种:
SELECT `user`.username, `user`.email, `user`.id AS user_id, user_class.level_id, user_class.class_id AS cid, user_class.create_time AS bontime, class.graduation_time AS eontime, class.offline_graduation_time, class.is_baidan, class. NAME AS class, class.period_id, class.offline_period_id, company. NAME AS branch, company.id AS bidFROM `user_class`INNER JOIN `user` ON user_class.user_id = `user`.idINNER JOIN class ON user_class.class_id = class.idLEFT JOIN company ON class.company_id = company.idLEFT JOIN period ON class.period_id = period.idWHERE class. DISABLE = 1AND `user_class`.level_id IN (’10’, ’12’, ’14’)AND ( (class.is_baidan = 1 AND (class.graduation_time = 0 OR class.graduation_time > 1469980800) ) OR (class.is_baidan = 2 AND (class.offline_graduation_time=0 OR class.offline_graduation_time >1469980800) ));
这两个sql语句查询结果相同,想问问到底是哪个好一点
问题解答
回答1:看mysql的执行计划,你这个sql语句不执行执行计划看,我觉得谁也告知不了你准确的答案,因为他们没有非常明显的性能差异。
相关文章:
1. PHP5.5.38.0 Apache2.4.23.0服务崩溃 系统日志php_curl.dll模块报2. javascript - webpack less文件单独打包出错3. Javascript-JSON.parse:数据意外结束-使用有效JSON时出错。我究竟做错了什么?4. docker镜像push报错5. python - Push Notification推送服务在手机上测试时候无法收到生产环境的推送6. Android 高德地图如何实现拖动平移地图时地图上的小图标不动?7. android glide asbitmap 在baseadpter中的问题8. javascript - 在一个a标签内添加了一个单击事件,想在时间里面给这个a标签添加类样式9. java - bin目录有什么特殊含义吗?为什么可执行文件都放在bin目录?10. 怎么php怎么通过数组显示sql查询结果呢,查询结果有多条,如图。我要forsearch里面echo

网公网安备