過濾數據 使用WHERE子句 搜索條件也稱為過濾條件(filter condition)。在SELECT語句中,數據根據WHERE子句中指定的搜索條件進行過濾: SELECT prod_name, prod_price FROM products WHERE prod_price = 2.50; 註 ...
過濾數據
使用WHERE子句
搜索條件也稱為過濾條件(filter condition)。在SELECT語句中,數據根據WHERE子句中指定的搜索條件進行過濾:
SELECT prod_name, prod_price FROM products WHERE prod_price = 2.50;
註意:
- SQL過濾與應用過濾:數據也可以在應用層過濾,但是資料庫進行了優化,以便快速有效地對數據進行過濾。讓客戶機應用(或開發語言)處理資料庫的工作將會極大地影響應用的性能。
- WHERE子句的位置:在同時使用ORDER BY和WHERE子句時,應該讓ORDER BY位於WHERE之後,否則將會產生錯誤。
WHERE子句操作符
MySQL支持的條件操作符:
操作符 | 說明 |
---|---|
= | 說明 |
<> | 不等於 |
!= | 不等於 |
< | 小於 |
<= | 小於等於 |
> | 大於 |
>= | 大於等於 |
BETWEEN | 在指定的兩值之間(包含邊界) |
檢查單個值
SELECT prod_name, prod_price FROM products WHERE prod_name = 'fuses';
SELECT prod_name, prod_price FROM products WHERE prod_price < 10;
SELECT prod_name, prod_price FROM products WHERE prod_price <= 10;
不匹配檢查
SELECT vend_id, prod_name FROM products WHERE vend_id <> 1003;
SELECT vend_id, prod_name FROM products WHERE vend_id != 1003;
註意:
如果將值與串類型的列進行比較,則需要限定引號。用來與數值列進行比較的值不用引號。
範圍值檢查
為了檢查某個範圍的值,可使用BETWEEN操作符:
SELECT prod_name, prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
空值檢查
IS NULL子句可用來檢查具有NULL值的列:
SELECT prod_name FROM products WHERE prod_price IS NULL;
註意:
- NULL 無值(no value):它與欄位包含0、空字元串或僅僅包含空格不同。
- NULL與不匹配: 在通過過濾選擇出不具有特定值的行時,不能返回具有NULL值的行。因為未知具有特殊的含義,資料庫不知道它們是否匹配,所以在匹配過濾或不匹配過濾時不返回它們。