mysql and與or介紹
AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。
使用OR關鍵字時:
- 只要符合這幾個查詢條件的其中一個條件,這樣的記錄就會被查詢出來。
- 如果不符合這些查詢條件中的任何一條,這樣的記錄將被排除掉。
使用and關鍵字時:
- 需要符合所有條件,這樣的記錄就會被查詢出來。
- 如果有任何一個條件不符合,這樣的記錄將被排除掉。
mysql and與or實例
本實例中需要使用到的表數據如下:
title | content | category | seo_name |
---|---|---|---|
php數組 | php數組使用分析 | 1 | php |
mysql distinct | mysql distinct實例 | 2 | mysql |
java array | java array使用方法 | 3 | java |
php input | php input如何獲值 | 4 | php |
(1)AND條件查詢運算符實例:
使用 AND 來顯示所有title為 "php數組" 並且category為1的數據:
SELECT * FROM ar WHERE title='php數組' AND category='1'
結果:
title | content | category | seo_name |
---|---|---|---|
php數組 | php數組使用分析 | 1 | php |
(2)OR條件運算符實例
使用 OR 來顯示所有title為 "java array" 或者seo_name為 "php" 的數據:
SELECT * FROM ar WHERE title='java array' OR seo_name='php'
結果:
title | content | category | seo_name |
---|---|---|---|
php數組 | php數組使用分析 | 1 | php |
java array | java array使用方法 | 3 | java |
php input | php input如何獲值 | 4 | php |
(3)結合 AND 和 OR 運算符
我們也可以把 AND 和 OR 結合起來(使用圓括號來組成復雜的表達式):
SELECT * FROM ar WHERE (title='java array' OR category='4') AND seo_name='php'
結果:
title | content | category | seo_name |
---|---|---|---|
php input | php input如何獲值 | 4 | php |
and與or優先級
在where中可以包含任意數目的and和or操作符,在沒有任何其他符號的時候,例如括號,SQL會首先執行and條件,然后才執行or語句,如:
select * from table from id=1 or id=2 and price>=10; /* http://www.manongjc.com/article/1439.html */
這條語句默認執行的是id=2並且price大於等於10的,或者是id=1。
如果加上括號:
select * from table from (id=1 or id=2) and price>=10;
則這條語句執行的是id=1或id=2,並且price大於等於10。