題目:列出本店價低於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.