MySQL 8.0+版本:如何拆分驼峰式姓名并添加空格?
MySQL 8.0+ 驼峰式姓名拆分解决方案
直接用下面的SELECT语句即可实现需求:
SELECT REGEXP_REPLACE(FullName, '([a-z])([A-Z])', '$1 $2') AS FormattedName FROM your_table_name;
原查询失效的原因
- 正则匹配范围有限:你之前用的
^([A-Z][a-z]+)([A-Z][a-z]+)$只能匹配恰好由两部分组成的驼峰姓名,像RamSinghRathore这种包含三部分及以上的姓名完全匹配不到。 - 不必要的二进制转换:
CAST(... AS BINARY)会将字符串转为二进制格式,可能干扰正则的大小写匹配逻辑,完全可以移除。
效果验证
- 输入
RamSingh→ 输出Ram Singh - 输入
NehaKaur→ 输出Neha Kaur - 输入
RamSinghRathore→ 输出Ram Singh Rathore
内容的提问来源于stack exchange,提问作者Shiv Sharma
相关产品推荐
相关产品推荐

