SQL 道场
返回资料库

SQL 基础 / 6 min

WHERE:把不需要的行过滤掉

WHERE 用来筛选行,先从等于、大于、IN、AND/OR 这些条件开始。

WHEREfilterAND

WHERE 过滤的是行

SELECT 控制列,WHERE 控制行。

比如只看北京用户:

SELECT id, name, city, age
FROM users
WHERE city = '北京';

这条 SQL 会先从 users 里找到 city = '北京' 的行,再返回指定列。

常用条件

-- 年龄大于等于 18
WHERE age >= 18

-- 城市在北京或上海
WHERE city IN ('北京', '上海')

-- 同时满足两个条件
WHERE city = '北京' AND age >= 25

AND 和 OR

AND 表示都要满足,OR 表示满足一个即可。

SELECT *
FROM users
WHERE city = '北京' OR city = '上海';

条件复杂时,建议加括号表达优先级。

常见坑

  • 字符串要加单引号,例如 '北京'。
  • = 是判断相等,不是赋值。
  • WHERE 不能直接过滤聚合结果,聚合后过滤要用 HAVING。