關於and 和or的執行優先級問題分析


題目:列出本店價低於60或者高於100、並且商品點擊數大於628的商品。

按照下面兩種寫法,得到的結果是不同的。

第一種:結果數據中有點擊數為628的記錄,顯然不符合題目要求。

SELECT
goods_name 商品名,
shop_price 本店價,
click_count 點擊數
FROM
ecs_goods
WHERE 
shop_price<60 OR shop_price>100 and click_count>628;

查詢結果截圖:

 

 第二種方法,把前面兩個or連接的條件,加了括號,顯示的結果是我們想要的。

SELECT
goods_name 商品名,
shop_price 本店價,
click_count 點擊數
FROM
ecs_goods
WHERE
(shop_price<60 OR shop_price>100) and click_count>628;

查詢結果:

 

 於是,我去寫了如下的SQL,驗證where條件中關於and和or的執行順序優先級

SELECT
goods_name 商品名,
shop_price 本店價,
click_count 點擊數
FROM
ecs_goods
WHERE
(click_count>628 and shop_price<60) OR shop_price>100 ;

查詢結果:

 

 最終確認,and的優先級高於or。所以說對於or的執行順序高的話,就需要加括號,否則就會先執行and,然后執行or.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM