第七章:數(shù)據(jù)過濾

說明:組合WHERE子句

第6章中介紹的所有WHERE子句在過濾數(shù)據(jù)時(shí)使用的都是單一的條件。為了進(jìn)行更強(qiáng)的過濾控制,MySQL允許給出多個(gè)WHERE子句。

這些子句可以兩種方式使用:以AND子句的方式或OR子句的方式使用。

概念:操作符(operator)用來聯(lián)結(jié)或改變WHERE子句中的子句的關(guān)鍵字。也稱為邏輯操作符(logical operator)。

1、AND操作符

eg:select name,price from product where price = 2 and name = red

上述例子中使用了只包含一個(gè)關(guān)鍵字AND的語句,把兩個(gè)過濾條件組合在一起。還可以添加多個(gè)過濾條件,每添加一條就要使用一個(gè)AND。

2、OR操作符

OR操作符與AND操作符不同,它指示MySQL檢索匹配任一條件的行。

eg:select name,price from product where price = 2 or name = red

注意:SQL(像多數(shù)語言一樣)在處理OR操作符前,優(yōu)先處理AND操作作符。

此問題的解決方法是使用圓括號明確地分組相應(yīng)的操作符。

在WHERE子句中使用圓括號任何時(shí)候使用具有AND和OR操作符的WHERE子句,都應(yīng)該使用圓括號明確地分組操作符。不要過分依賴默認(rèn)計(jì)算次序,即使它確實(shí)是你想要的東西也是如此。使用圓括號沒有什么壞處,它能消除歧義。

3、IN操作符

圓括號在WHERE子句中還有另外一種用法。IN操作符用來指定條件范

圍,范圍中的每個(gè)條件都可以進(jìn)行匹配。IN取合法值的由逗號分隔的清

單,全都括在圓括號中。

eg:select name,price from product where price in (2,3,4)

注意:IN操作符和OR在功能上是一樣的。

為什么要使用IN操作符?其優(yōu)點(diǎn)具體如下。

?在使用長的合法選項(xiàng)清單時(shí),IN操作符的語法更清楚且更直觀。

?在使用IN時(shí),計(jì)算的次序更容易管理(因?yàn)槭褂玫牟僮鞣伲?/p>

?IN操作符一般比OR操作符清單執(zhí)行更快。

?IN的最大優(yōu)點(diǎn)是可以包含其他SELECT語句,使得能夠更動態(tài)地建立WHERE子句。第14章將對此進(jìn)行詳細(xì)介紹。

4、NOT操作符

WHERE子句中的NOT操作符有且只有一個(gè)功能,那就是否定它之后所跟的任何條件。

eg:select name,price from product where price not in (2,3,4)

注意:MySQL支持使用NOT對IN、BETWEEN和EXISTS子句取反,這與多數(shù)其他DBMS允許使用NOT對各種條件取反有很大的差別。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容