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