MySQL WHERE 条件查询完全指南:从运算符到优先级

Alice
Alice
发布时间:2026-10-16| 7人浏览过
原创

在 MySQL 数据库操作中,`WHERE` 子句是提取特定数据的核心工具。通过组合比较、逻辑和特殊判断运算符,用户可以精确过滤出符合业务需求的记录,同时需特别注意 `NULL` 值的处理方式。

比较与逻辑运算符

使用 WHERE 语句可以对数据进行基础筛选。最常见的是数值或文本的比对:

  • 等于(=):精确匹配指定值。
  • 不等于(!=):排除指定值。
  • 大小关系(> / < / >= / <=):用于数值型字段或可排序文本的范围界定。

例如,获取 ID 为 1 的用户:
select * from users where id = 1;

当需要多个限制条件时,使用逻辑运算符将它们串联:

  • and:所有条件必须同时满足。
  • or:满足其中任意一个条件即可。
  • not:对条件取反。

示例:筛选 ID 为 1 且年龄为 24 的用户
select * from users where id = 1 and age = 24;

范围查询与特殊处理

针对特定的区间或多个离散值,可以使用更简洁的方式:

运算符描述示例
in匹配列表中的非连续值where id in(1,3,5);
between ... and ...匹配指定的闭区间where id between 1 and 5;

查找 ID 在 (1, 3, 4) 中的用户
select * from users where id in (1,3,4);

查找 ID 在 1 到 5 之间的用户
select * from users where id between 1 and 5;

注意:在处理“空”状态时必须严谨。NULL 表示缺失或未知数据,而 ''(空字符串)是一个长度为零的有效字符。两者在数据库中完全不同:

插入空字符串示例:
INSERT INTO users (name) VALUES ('');

插入 NULL 示例:
INSERT INTO users (name) VALUES (null);

判断是否为空的正确写法是使用 is null 和 is not null:

查询生日为空的数据
select * from users where birth_date is null;

模糊查询

LIKE 配合通配符可实现灵活的内容检索,最常用的是百分号 %:

  • '王%':以“王”开头,后跟任意字符。
  • '%王':以“王”结尾,前跟任意字符。
  • '%王%':包含“王”字即可。

查找姓王的用户
select * from users where name like '王%';

查找名字中包含王的用户
select * from users where name like '%王';

操作优先级

在编写复杂的 WHERE 条件时,需注意算子的执行顺序:

  1. 小括号 () 拥有最高优先级,常用于强制改变默认逻辑。
  2. 然后是 NOT,接着是比较运算符(如 =, >),最后是逻辑运算符(AND, OR)。
  3. AND 的优先级高于 OR。如果希望优先执行 OR 逻辑,务必使用括号将其包裹。

以上就是 MySQL 条件查询的详细内容与实操示例,更多关于 SQL 数据提取优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。