首页/数据/数据库速查/WHERE 条件过滤与运算符
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

WHERE 条件过滤与运算符

用比较、逻辑、范围与空值运算符筛选行;NULL 判断必须用 IS NULL,任何与 NULL 的比较结果都是未知。

数据库速查数据更新于 2026-10-12
用途行级过滤
运算符= <> != < <= > >= AND OR NOT BETWEEN IN LIKE
空值IS NULL / IS NOT NULL

条件示例

条件示例
SELECT * FROM orders WHERE status = 'paid';
SELECT * FROM orders WHERE qty BETWEEN 1 AND 10 AND amount > 100;
SELECT * FROM orders WHERE user_id IN (1001, 1002, 1003);
SELECT * FROM orders WHERE remark IS NULL;
对索引列做运算或函数(如 WHERE DATE(created_at)='2026-10-12')会使索引失效,改成范围条件 created_at >= '2026-10-12' AND created_at < '2026-10-13'。

易错点

  • NOT IN 子查询返回 NULL 会导致整体不匹配,慎用;可用 NOT EXISTS 替代
  • 字符串与数字隐式转换可能既慢又错,条件值与列类型保持一致

数据来源与参考

  • MySQL 8.0 Reference Manual: SELECT Statement - WHERE Clause

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌