WHERE 條件
有時候操作數據庫時,只操作一些有條件限制的數據,這時可以在SQL語句中添加WHERE子句來規定數據操作的條件。
語法:
SELECT column,… FROM tb_name WHERE definition
WHERE 關鍵字後面接有效的表達式(definition),該表達式表示被操作的數據記錄必須滿足的條件。
除 SELECT 外,WHERE 條件關鍵字可以用於任何 SQL 語法允許的場合,如 UPDATE(更新)、DELETE(刪除)等。
例子:
SELECT * FROM user WHERE username = 'Jack'
該例子指定查詢條件為 username 等於 Jack 的數據。
WHERE 表達式中運算符說明:
參數說明:
運算符 | 說明 |
---|---|
= | 等於 |
!= | 不等於,某些數據庫系統也寫作 <> |
> | 大於 |
< | 小於 |
>= | 大於或等於 |
<= | 小於或等於 |
BETWEEN … AND … | 介於某個範圍之內,例:WHERE age BETWEEN 20 AND 30 |
NOT BETWEEN …AND … | 不在某個範圍之內 |
IN(項1,項2,…) | 在指定項內,例:WHERE city IN('beijing','shanghai') |
NOT IN(項1,項2,…) | 不在指定項內 |
LIKE | 搜索匹配,常與模式匹配符配合使用 |
NOT LIKE | LIKE的反義 |
IS NULL | 空值判斷符 |
IS NOT NULL | 非空判斷符 |
NOT、AND、OR | 邏輯運算符,分別表示否、並且、或,用於多個邏輯連接。優先級:NOT > AND > OR |
% | 模式匹配符,表示任意字串,例:WHERE username LIKE '%user' |
一些 WHERE 例子
根據用戶名查詢指定用戶:
代碼如下:
SELECT * FROM user WHERE username = 'Jack'
查詢2009年1月1日凌晨0點以後註冊的用戶名稱及 id 號:
代碼如下:
$regdate = mktime(00, 00, 01, 01, 01, 2009);
SELECT uid,username FROM user WHERE regdate >= $regdate
代碼如下:
搜索用戶名中含有 user 字樣的所有用戶:
SELECT * FROM user WHERE username LIKE '%user%'
搜索用戶名中含有 user 或者 admin 的所有用戶:
代碼如下:
SELECT * FROM user WHERE username LIKE '%user%' OR username LIKE '%admin%'
閱讀更多 生活社會大雜燴 的文章