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. html - 移动端radio无法选中2. javascript - webpack打包后的bundlejs文件代码不知道什么意思.3. javascript - 使用echarts做一个横向的柱状图,但是数据超出坐标轴范围了怎么办?4. 正则表达式 - python pandas的sep参数问题5. javascript - Element UI表格错行6. mysql - 这条联合sql语句哪里错了7. javascript - es6模块加载export的输出值有点没太搞明白8. javascript - 在静态页面上用load 引入的页面文件问题?9. javascript - vue-resource如何终止之前的ajax请求?10. css - 移动端 line-height安卓错位,苹果机正常用,缩放解决了,可是又出来了占位的问题
