SQL WHERE子句 #
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 | 指定针对某个列的多个可能值 |