首页/数据/SQL 速查/UPPER / LOWER 大小写转换
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

UPPER / LOWER 大小写转换

转大写或小写:跨库迁移时要注意比较行为差异——MySQL 默认排序规则不区分大小写,PostgreSQL 默认区分。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT UPPER('Abc'), LOWER('AbC');   -- 'ABC', 'abc'(两库通用,MySQL 也接受 UCASE/LCASE)
MySQLUPPER / UCASE、LOWER / LCASE 同义
PostgreSQLupper / lower
比较MySQL utf8mb4_0900_ai_ci 下 'ABC'='abc' 为真;PostgreSQL 为假
WHERE UPPER(email) = 'A@B.COM' 会让该列索引失效;要么存规范化小写列,要么使用表达式索引(PG)/生成列(MySQL)。

易错点

  • 误以为两库默认都忽略大小写:PostgreSQL 里 'A'='a' 为假、'A' LIKE 'a' 也为假,需 ILIKE 或 lower()
  • 在 WHERE 中对列做大小写转换再比较无法利用普通索引,属高频性能坑

数据来源与参考

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