and 用在where子句中,用來指示檢索滿足所有給定條件的行,而or用在where子句中,用來指示檢索匹配任一給定條件的行。
where子句中可包含任意數目的and和or操作符號,但是要注意在sql規範中and操作符的優先順序要高於or操作符。
若一時大意,操作符就會被錯誤組合,查詢出來的結果也是與自己期望南轅北轍了。
假如需要列出**為5元以上且由瑞興生物製藥公司或星城製藥廠生產的所有產品
[sql]view plain
copy
?select
prod_name,prod_price
from
products
where
supply
like
'瑞興%'
orsupply
like
'星城%'
andprod_price>=10
select prod_name,prod_price from products where supply like '瑞興%' or supply like '星城%' and prod_price>=10[sql]view plain
copy
?prod_name prod_price
prod_name prod_price[sql]view plain
copy
?苯唑西林鈉(苯唑青黴素) 6.50
頭孢氨苄 13.50
頭孢羥氨苄 8.00
硫酸慶大黴素 15.00
紅黴素 5.50
苯唑西林鈉(苯唑青黴素) 6.50頭孢氨苄 13.50
頭孢羥氨苄 8.00
硫酸慶大黴素 15.00
紅黴素 5.50
這個查詢的結果與自己期望的結果不一致。
[html]view plain
copy
?硫酸慶大黴素 15.00
硫酸慶大黴素 15.00
此問題就是由於使用or、and操作符預設計算次序造成的,解決的方法就是使用括號明確地分組相應的操作符。
[html]view plain
copy
?任何時候使用具有and和or操作的where子句,都應該使用括號明確地分組操作符消除歧義,不要過分的依賴預設計算次序。
SQL WHERE 子句中的單引號
由於對sql 語句的不熟悉,在機房收費系統中乙個很的簡單問題也可能耽誤很長時間。這篇談及乙個簡單的單引號的使用。如需有條件地從表中選取資料,可將 where 子句新增到 select 語句。我開始沒在sql語句中插入單引號導致錯誤 給msgtext 加監視後 在sql server 中查詢 而加入單...
SQL語句中 UNION與UNION ALL的區別
union用的比較多union all是直接連線,取到得是所有值,記錄可能有重複 union 是取唯一值,記錄沒有重複 1 union 的語法如下 sql 語句 1 union sql 語句 2 2 union all 的語法如下 sql 語句 1 union all sql 語句 2 效率 uni...
SQL語句中 UNION與UNION ALL的區別
union用的比較多 union all是直接連線,取到得是所有值,記錄可能有重複 union 是取唯一值,記錄沒有重複 1 union 的語法如下 sql 語句 1 union sql 語句 2 2 union all 的語法如下 sql 語句 1 union all sql 語句 2 效率 un...