我使用MySQL 5.1中,我有一個查詢的大致形式:EXISTS比COUNT(*)> 0更有效嗎?
select count(*) from mytable where a = "foo" and b = "bar";
在我的程序,它檢查的唯一的事情是,這是否是零或非零。如果我把它轉換成:
select exists(select * from mytable where a = "foo" and b = "bar");
是MySQL的智能足以停止搜索時,它擊中第一個?還是有其他方式與MySQL溝通,我的意圖是簡單地找出是否有任何記錄符合此條件,並且我不需要精確計數?
嘗試解釋這兩個查詢,你應該得到答案。您可以發佈解釋輸出,並且ppl將幫助您解碼。 – Zimbabao 2011-03-10 19:19:24
MySQL知道優化'COUNT(*)> 0'是極不可能的! – Gabe 2011-03-10 19:19:40
ANSI標準說EXISTS更好,因爲它不應該遍歷或評估超出行的「存在」http://stackoverflow.com/questions/3271455/whats-the-best-to-check-if-item-exist - 或 - 選擇countidor存在/ 3271464#3271464 – gbn 2011-03-10 19:21:34