1. 程式人生 > >07 數據過濾 - and、or、not、in

07 數據過濾 - and、or、not、in

end sql 執行 exist 優先 最大 邏輯 rom products

組合where子句

可以使用邏輯操作符(AND、OR)組合where子句
select prod_id, prod_price, prod_name from products where vend_id = 1003 and prod_price <= 10;
select prod_name, prod_price from products where vend_id = 1002 or vend_id = 1003
and先於or進行計算,可使用括號更改優先級

in操作符

in操作符用來指定條件範圍
select prod_name, prod_price from products where vend_id in(1002, 1003) order by prod_name;
in操作符更加直觀,次序更容易管理,且一般比or執行得更快,而且還可以包含其他select語句(子查詢)

in操作符的優點

<1>在使用長的合法選項時,IN操作符的語法更清楚且更直觀
<2>在使用IN時,計算的次序更容易管理(因為使用的操作符更少)
<3>IN操作符一般比OR操作符清單執行更快
<4>IN的最大優點是可以包含其他SELECT語句(子查詢),使得能夠更動態地建立where子句


not操作符

not操作符用於否定它之後所跟的任何條件
select prod_name, prod_price from products where vend_id not in(1002, 1003) order by prod_name;
MySQL支持使用NOT對IN、BETWEEN和EXISTS子句取反,這與多數其他DBMS允許使用NOT對各種條件取反有很大差別

07 數據過濾 - and、or、not、in