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語句查詢結(jié)果相同,想問問到底是哪個好一點
問題解答
回答1:看mysql的執(zhí)行計劃,你這個sql語句不執(zhí)行執(zhí)行計劃看,我覺得誰也告知不了你準(zhǔn)確的答案,因為他們沒有非常明顯的性能差異。
相關(guān)文章:
1. css3 - 這個右下角折角用css怎么畫出來?2. css3 - 沒明白盒子的height隨width的變化這段css是怎樣實現(xiàn)的?3. javascript - canvas 裁剪空白區(qū)域4. atom開始輸入!然后按tab只有空格出現(xiàn)沒有html格式出現(xiàn)5. javascript - 移動端自適應(yīng)6. javascript - 在 model里定義的 引用表模型時,model為undefined。7. apache - 想把之前寫的單機(jī)版 windows 軟件改成網(wǎng)絡(luò)版,讓每個用戶可以注冊并登錄。類似 qq 的登陸,怎么架設(shè)服務(wù)器呢?8. android - 課程表點擊后浮動后邊透明可以左右滑動的界面是什么?9. python3.x - c++調(diào)用python310. java - 根據(jù)月份查詢多個表里的內(nèi)容怎么實現(xiàn)好?
