SQL中in和 的區別

2021-09-24 17:50:31 字數 521 閱讀 8116

sql 中等於 後面這能是某乙個特定值,而in 可以是乙個結果集。如果結果集只有乙個值時「=」等價於「in」 ,如果結果集有多個值時,in 等價於 多個 「=」或。

例如:

col = 'a' 等價於 col in ('a'),如果這種情況建議使用「=」,如果col 有索引,查詢時會使用索引。

col = 'a' or col ='b' or col ='c' 等價於 in('a','b','c')

比如說student表(id,學生姓名)

查乙個學生

select * from student where 學生姓名='張三'

select * from student where 學生姓 in('張三' )

查兩個學生

select * from student where 學生姓名='張三' or 學生姓名='李四'

select * from student where 學生姓 in('張三' ,'李四')

SQL中ON和WHERE的區別

一直覺得自己sql不熟練,於是開始刷sql題,發現了不懂sql中on和where的區別,搜尋結果網上幾十幾十篇的部落格互相抄 關鍵抄得還很迷惑。好在最後還是弄懂了。1.首先on是用在連線join中的,它的意思是在生成連線結果的時候 偏心地 剔除掉一些不符合條件的 至於怎麼偏心,比如在left joi...

sql中in和exists的區別

in是把外表和內錶作hash連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢,一直以來認為exists比in效率高的說法是不準確的。如果查詢的兩個表大小相當,那麼用in和exists差別不大 如果兩個表中乙個較小乙個較大,則子查詢表大的用exists,子查詢錶小的用in ...

SQL中in和exists的區別

in和exists in 是把外表和內錶作hash 連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢。in parm1,parm2.parm是有個數限制的 如果兩個表中乙個較小,乙個是大表,則子查詢表大的用exists,子查詢錶小的用in 例如 表a 小表 表b 大表 1...