SQL WHERE 子句

WHERE 子句用于过滤记录。

SQL WHERE 子句 #

WHERE 子句用于提取那些满足指定条件的记录。

SQL WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

WHERE 子句实例 #

下面的 SQL 语句从 “domains” 表中选取icp为 “namesilo” 的所有网站:

实例

MariaDB [learnsql]> select * from domains where icp='namesilo';
+----+----------+---------------+------------+------------+
| ID | ICP      | DomainName    | RegDate    | EndDate    |
+----+----------+---------------+------------+------------+
|  4 | namesilo | getos.org     | 2016/10/9  | 2022/10/9  |
|  8 | namesilo | les.moe       | 2015/12/31 | 2022/12/31 |
|  9 | namesilo | regex.in      | 2020/1/3   | 2023/1/3   |
| 12 | namesilo | blbl.dev      | 2020/1/17  | 2023/1/17  |
| 13 | namesilo | raspi.in      | 2014/2/27  | 2023/2/27  |
| 14 | namesilo | pornie.in     | 2016/3/10  | 2023/3/10  |
| 15 | namesilo | aosp.me       | 2016/3/17  | 2023/3/17  |
| 16 | namesilo | bailuyuan.org | 2017/3/23  | 2023/3/23  |
| 18 | namesilo | ustv.xyz      | 2018/3/24  | 2023/3/25  |
| 20 | namesilo | ciux.org      | 2010/4/26  | 2023/4/26  |
| 21 | namesilo | avlist.top    | 2021/6/5   | 2023/6/5   |
| 24 | namesilo | ltecn.com     | 2014/7/26  | 2025/7/26  |
| 25 | namesilo | pornie.top    | 2016/3/10  | 2027/3/10  |
+----+----------+---------------+------------+------------+
13 rows in set (0.001 sec)

文本字段 vs. 数值字段 #

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个实例中 ‘icp’ 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

实例

MariaDB [learnsql]> select * from domains where id=13;
+----+----------+------------+-----------+-----------+
| ID | ICP      | DomainName | RegDate   | EndDate   |
+----+----------+------------+-----------+-----------+
| 13 | namesilo | raspi.in   | 2014/2/27 | 2023/2/27 |
+----+----------+------------+-----------+-----------+
1 row in set (0.000 sec)

WHERE 子句中的运算符 #

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值