MySQL中如何使用UPPER转大写字母_MySQL文本格式化函数
UPPER(str)仅接受一个字符串参数,将ASCII字母转为大写,非ASCII字符、数字、符号不变;传入NULL返回NULL;在WHERE中使用会导致索引失效,应优先通过校对规则(如utf8mb4_general_ci)实现大小写不敏感匹配。UPPER函数怎么用,参数有什么讲究UPPER(str) 只接受一个参数,必须是字符串类型(VARCHAR、TEXT、甚至数字会被隐式转为字符串),返回全大写结果。它不修改原字段,只是计算时转换。如果传入 NULL,结果仍是 NULL,不是空字符串中文、日文、俄文字母等非 ASCII 字符不受影响,只对 ASCII 字母(a–z)生效数字和符号原样保留,比如 UPPER('hello123!') → 'HELLO123!'WHERE里用UPPER做大小写不敏感匹配很危险想查邮箱时不区分大小写?别直接写 WHERE UPPER(email) = UPPER('User@ExAmPlE.com') —— 这会让索引失效,哪怕 email 字段有索引也会全表扫描。更安全的做法是:确保字段本身用 utf8mb4_unicode_ci 或 utf8mb4_0900_as_cs 以外的 collation(比如 utf8mb4_general_ci),直接 WHERE email = 'User@ExAmPlE.com' 就自动忽略大小写如果必须用 UPPER(比如要统一输出),至少把函数放在右边:WHERE email = UPPER('User@ExAmPlE.com') 不行,还是得左边也 UPPER —— 所以真要模糊查,优先改 collation,而不是靠函数兜底和 LOWER、UCASE 的区别在哪UPPER 和 UCASE 完全等价,MySQL 文档里说 UCASE 是 UPPER 的同义词,二者行为、性能、兼容性毫无差别。别纠结选哪个,团队统一就行。 Fotor AI Image Generator Fotor 平台的 AI 图片生成器
