在工程中经常会遇见将人名规范化的问题,比如说AliCE规范化为Alice,boB规范化为Bob,那么如何操作人名规范化?
首先给出Users 表:
+---------+-------+ | user_id | name | +---------+-------+ | 1 | aLice | | 2 | bOB |
将人名规范化问题可以拆解成,拿出人名中的第一个字母,将其转化为大写,在拿出人名的其余字母,将其转化为小写,再将其拼接起来
1、如何将人名的首字母拿出来?
SUBSTRING(column_name, start, length):这将从列的值中提取一个子字符串,从指定的起始位置开始,直到指定的长度。如果没有length默认从start开始取,取至最后一个字符串结束。
2、如何转化字母大写或小写?
转化为大写:UPPER(expression):这会将字符串表达式转换为大写。
转化为小写:LOWER(expression):这会将字符串表达式转换为小写。
3、如何将其拼接起来?
CONCAT(string1, string2, ...):这会将两个或多个字符串连接成一个字符串。
综上所述:该问题的MySQL代码为
select
user_id,
concat(upper(substring(name,1,1)),lower(substring(name,2))) as name
from Users
group by user_id
order by user_id;
结果如下