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%'