首页/数据/SQL 速查/比较运算符与排序规则影响
本包目录(311 条)

比较运算符与排序规则影响

=、<>、>、< 等比较运算的写法与两个高频细节:字符串比较受排序规则影响(大小写敏感性);与 NULL 比较需要专门语法。

SQL 速查数据更新于 2026-10-12
等值= 全等匹配
不等<> 与 !=(推荐 <>)
NULL 安全等值MySQL 用 <=>;标准写法 IS NOT DISTINCT FROM(PG)
链式范围x >= a AND x <= b 或 BETWEEN a AND b

示例

示例
SELECT * FROM users WHERE level >= 3 AND level <> 9;

-- 大小写敏感性演示
-- MySQL 默认排序规则不区分大小写:
SELECT 'a' = 'A';   -- 1
-- PostgreSQL 默认区分大小写:
SELECT 'a' = 'A';   -- f
MySQL 默认排序规则(如 utf8mb4_0900_ai_ci)比较不区分大小写,PostgreSQL 默认区分;迁移后 WHERE name='Tom' 的命中行数可能变化。

易错点

  • = NULL 永远不成立(结果为 UNKNOWN),判空必须写 IS NULL
  • 字符集或排序规则不一致的两个值比较时 MySQL 会报 Illegal mix of collations,需要显式 COLLATE

数据来源与参考

  • MySQL 8.0 Reference Manual · Comparison Functions and Operators
  • PostgreSQL Documentation · Comparison Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌