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。