成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數據庫如何實現多字段過濾

數據庫 MySQL
我國移動互聯網進入了飛速發展階段,互聯網人才日益受到企業的重視,其中PHP開發人才便是其中之一,在互聯網旅游、金融、餐飲、娛樂、社交等一些新興企業與軟件開發企業中,PHP開發崗位相對占有核心地位,今天給大家分享的技術知識是——mysql數據庫如何實現多字段過濾。

我國移動互聯網進入了飛速發展階段,互聯網人才日益受到企業的重視,其中PHP開發人才便是其中之一,在互聯網旅游、金融、餐飲、娛樂、社交等一些新興企業與軟件開發企業中,PHP開發崗位相對占有核心地位,今天給大家分享的技術知識是——mysql數據庫如何實現多字段過濾。

1.多字段過濾查詢

類比現實:查詢公司中戶籍是北京的、年齡超過30歲、性別是男的同事信息;

查詢場景:查詢商品名稱是'King doll'、商品價格是9.49的商品。

查詢SQL: 

  1. SELECT prod_id, prod_name, prod_price F ROM Products W HERE prod_name = 'King doll' AND prod_price = 9.49; 

查詢結果:

 

2.多字段過濾連接

WHERE字句中有多個字段進行查詢過濾,過濾條件如何連接的呢?MySql允許給出多個WHERE字句進行過濾,它們可以使用AND或者OR進行連接!

AND連接類比現實:飛鷹小學5年2班身高超過1米3、不戴眼鏡的男同學去操場上跑步。根據上述描述可以得出結論必須同時滿足身高超過1米3、不戴眼鏡、男生這三個條件的同學才需要去操場跑步,任何一個條件不滿足都不用去操場跑步。

OR連接類比現實:飛鷹小學5年2班身高超過1米3或不戴眼鏡的同學去操場上跑步,根據上述描述可以得出結論只要滿足身高超過1米3,或不戴眼鏡這兩個條件中任意一個條件的學生就要去操場跑步,即身高超過1米3的同學要去跑步,不戴眼鏡的同學要去跑步。只要滿足任意一個條件就需要去操場可以!

2.1AND操作符

AND運算符作用?用來指示檢索滿足所有給定條件的行。如果需要同時滿足多個過濾條件,只需要在過濾條件之間添加AND即可。

測試案例:查詢商品單價在2-5之間,商品數量大于等于10的訂單數據。

測試SQL: 

  1. SELECT * FROM OrderItems W HERE item_price B ETWEEN 2 AND 5 AND quantity >= 10 ORDER BY order_num DESC

測試結果:

結果說明:如果有多個過濾條件需要同時滿足,那么只需要在哪些過濾條件之間加上AND關鍵字即可,查詢條件理論上個數不限!

2.2OR操作符

OR操作符作用?用來指示檢索滿足任一給定條件的行。如果有多個過濾條件,那么需要過濾條件之間添加OR即可。

測試案例:查詢商品單價在3-5之間,或商品數量大于等于200的訂單數據。

測試SQL: 

  1. SELECT * F ROM OrderItems W HERE item_price B ETWEEN 3 AND 5 OR quantity >= 200 ORDER BY order_num DESC

測試結果:

結果說明:只要滿足商品單價在[3,5]之間,或者商品數量大于等于200的訂單都滿足條件。

2.3AND和OR進行對比

AND必須滿足全部條件,OR只需要滿足任一條件。

類比理解:現在有一群黑色和白色的公企鵝,如果取走黑色母企鵝,即SELECT * FROM 企鵝 WHERE 顏色=黑色 AND 性別=母是查詢不到企鵝的,因為兩個條件必須同時滿足,性別=母是沒有;如果要取走顏色是白色或性別是母的企鵝,即SELECT * FROM 企鵝 WHERE 顏色=白色 OR 性別=母,那么就可以將白色公企鵝查詢出來。

2.4執行次序

將AND和OR結合使用進行復雜的數據過濾,那么就會出現執行次序的問題。

類比現實:比如小學中學習有括號四則混合運算,那么運算就要滿足一定順序;比如公司中查詢月薪超過10w,并且職位是管理層或開發者的員工。

測試情景:查詢商品單價是3.49,商品編號是BNBG01或BNBG03的訂單。

分析思考:查詢商品單價必須滿足3.49,而商品編號只需要滿足BNBG01或BNBG03任一個即可。

測試SQL: 

  1. SELECT * F ROM OrderItems W HERE item_price B ETWEEN 3 AND 5 OR quantity >= 200 ORDER BY order_num DESC

測試結果:

結果分析:

  1. 數據沒有滿足我們的預期,為什么呢?單價必須等于3.49。
  2. 在SQL的世界中AND運算符優先于OR運算符,好比乘法運算優先于加減法運算先執行。
  3. SELECT * F ROM OrderItems W HERE item_price=3.49 AND prod_id='BNBG01' OR prod_id='BNBG03';實際查詢的結果是單價等于3.49并且商品編號是'BNBG01'的訂單,或者商品編號是'BNBG03'的訂單,所以和我們預期是不一樣的!

如何解決AND和OR的順序問題呢?使用圓括號明確地分組進行相應的操作。

測試SQL: 

  1. SELECT * F ROM OrderItems W HERE item_price= 3.49 AND (prod_id = 'BNBG01' OR prod_id= 'BNBG03') ; 

測試結果:

結果分析:

  1. 從查詢結果中可以看到,(prod_id='BNBG01' OR prod_id='BNBG03')作為1個整體變成1個執行單元;
  2. 圓括號的優先級高于AND,AND優先級高于OR;
  3. 如果查詢過濾條件過多,使用AND或者OR,那么就應該使用圓括號明確地分組操作,不要以來默認地計算次序!使用圓括號的好處在于可消除歧義,增強可讀性。 
責任編輯:龐桂玉 來源: 快資訊
相關推薦

2010-11-24 10:35:34

MySQL單表多字段

2010-11-22 13:13:30

MySQL模糊查詢

2010-06-09 10:09:39

MySQL 數據庫導入

2010-05-20 11:23:12

卸載MySQL

2011-07-28 17:02:59

MYSQL數據庫跨表更新數據并合

2023-11-30 07:15:57

MySQL數據庫

2010-06-02 16:57:50

MySQL數據庫同步

2010-10-14 10:18:28

MySQL數據庫備份

2010-06-07 13:53:04

MySQL數據庫表

2010-06-01 12:51:23

MySQL數據庫

2009-02-02 13:16:23

修復數據表MySQL

2011-05-18 13:16:21

MySQL數據庫鎖定

2011-03-21 17:00:23

MySQL數據庫

2018-09-11 17:13:23

MySQ數據庫重復記錄

2012-10-19 10:21:07

數據庫負載均衡mssqlserver

2010-04-20 10:12:42

OraclePL

2010-06-04 09:58:03

MySQL數據庫備份

2010-06-09 17:36:45

MySQL數據庫同步

2011-05-24 09:32:38

2010-06-09 11:32:51

MySQL數據庫備份
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 粉嫩一区二区三区四区公司1 | 久久av网站 | 国产精品久久久久久久久久久免费看 | 一区二区三区久久 | 亚洲精品久久久久久久久久久 | 色性av| av一级在线观看 | 国产精品久久久久久久久久免费看 | 国产精品久久777777 | 一区二区三区国产好 | 少妇精品亚洲一区二区成人 | 久久www免费视频 | 久久九| 国产精品国产精品国产专区不片 | 亚洲夜夜爽 | 黄色网址在线免费观看 | 免费激情网站 | 美美女高清毛片视频免费观看 | 在线a视频 | 伊人中文字幕 | 欧美精品一区三区 | 国产精品日韩欧美一区二区三区 | 91精品在线播放 | 欧美色视频免费 | 欧美a在线| 久久精品小视频 | 美女张开腿露出尿口 | 羞羞视频免费观看 | 日韩欧美一区二区三区在线播放 | 国产精品不卡一区 | 日韩成人在线观看 | 久久在视频 | 色姑娘综合网 | av大全在线| 做a的各种视频 | av在线播放国产 | 亚洲成人精品久久久 | 国产精品久久久久久久久久久久久 | 日韩超碰| 爱爱免费视频网站 | 夜夜艹|