整理一下以前的一些用sql語句的習慣。
先提乙個概念掃瞄引數(sarg),用於限制搜尋的乙個操作,因為它通常是指乙個特定的匹配,乙個值得範圍內得匹配或者兩個以上條件的
and 連線。
1.or 會引起全表掃瞄.
如:name='張三' and **》5000 符合sarg
而:name='zhangsan ' or **》5000 則不符合sarg
2.非操作符,函式引起的不滿足sarg形勢的語句
非操作符有:not ,!= ,<>,not exists,not in ,not like 等,另外還有函式。
where **×2>5000 和 where **》5000×2
3.in 的作用相當於or
select * from table1 where tid in (2,3)
和select * from table1 where tid=2 or tid=3
SQL語句中的NOT IN 的優化
sql語句中的in和not in子查詢理解起來很直觀,和實際的業務也很匹配,所有經常被開發人員使用,資料量不大的表還好,如果資料量太大將導致效能問題。原sql select count distinct t.id from task t where t.tenant key tp18squme1 a...
sql查詢語句中
sql查詢語句中select t.status,t.rowid from person t where t.status 2,此處查詢的是status不等於2的記錄,並過濾掉status為null的記錄。注意 此處不管status是integer型別還是long型別,都會過濾掉status為null...
SQL語句中 ( ) 含義
表示外連線。條件關聯時,一般只列出表中滿足連線條件的資料。如果條件的一邊出現 則可列出該表中在條件另一側的資料為空的那些記錄。比如兩個表 員工表和工資表。員工表中有總經理 a b c四條記錄,工資表中只有a b c三人的記錄。如果寫如下語句 select 姓名,工資 from 員工表,工資表 whe...