1. 程式人生 > >關於sql的一些優化,記住以下這些,不要看網上的一些以訛傳訛!

關於sql的一些優化,記住以下這些,不要看網上的一些以訛傳訛!

1. in 在a in (b, c, d, ... , null)中, 括號裡面的比較值裡面存在NULL的話, 看其它比較值裡面是否有跟a相等的值存在, 如果有則返回true, 否則返回false.

2. not in 在 a not in (b, c, d,..., null)中,如果括號裡面存在NULL的話, 則一律返回false.
    
3. exists 在 exists的關聯查詢條件裡面如果存在NULL的話,則內部查詢是查詢不出結果的,不符合exists至少有一行結果集返回的判斷, 因此返回false.
    

4. not exists 在not exists的關聯查詢條件裡面如果存在NULL的話,則內部查詢也是查詢不出結果的,符合not exists對於沒有結果集返回的預期判斷, 因此返回true.

和DBA共同討論,結合資料庫處理資料邏輯,資料加以驗證