<p>答案:mysql使用UPPER()/UCASE()和LOWER()/LCASE()函数转换字符串大小写,常用于忽略大小写的查询比较,如select * FROM users WHERE LOWER(username) = LOWER(‘Alice’),且仅影响英文字母,数字和特殊字符不变。</p>

MySQL 提供了两个内置函数用于字符串的大小写转换:UPPER() 和 LOWER(),也可以写作 UCASE() 与 LCASE()。它们可以将字符串中的字母分别转换为大写或小写。
1. 转换为大写:UPPER() 或 UCASE()
使用 UPPER(str) 可以将字符串 str 中的所有字母转换为大写。
示例:
SELECT UPPER(‘hello world’);
— 输出:HELLO WORLD
SELECT UCASE(‘MySQL’);
— 输出:MYSQL
2. 转换为小写:LOWER() 或 LCASE()
使用 LOWER(str) 可以将字符串 str 中的所有字母转换为小写。
示例:
SELECT LOWER(‘HELLO MYSQL’);
— 输出:hello mysql
SELECT LCASE(‘Hello World’);
— 输出:hello world
3. 实际应用:在查询中忽略大小写
常用于模糊查询时统一大小写进行比较,避免因大小写导致漏查。
示例:
SELECT * FROM users WHERE LOWER(username) = LOWER(‘Alice’);
这条语句能匹配 username 为 ‘alice’、’Alice’、’ALICE’ 等各种大小写形式的记录。
4. 注意事项
• 大小写转换只影响英文字母,数字和特殊字符保持不变。
• MySQL 的默认排序规则(如 utf8mb4_general_ci)是不区分大小写的,但在二进制排序规则(如 utf8mb4_bin)下是区分大小写的。
• 如果希望字段始终以某种大小写存储,可以在插入或更新时使用 UPPER() 或 LOWER() 进行规范化。
基本上就这些,用起来很简单但很实用。


