我有一列包含这样的字符串:
+-------------------+
| type |
+-------------------+
|cashback_percentage|
| cashback_fix |
| fix |
+-------------------+
以及我使用的查询:
SELECT CONCAT(UCASE(LEFT(replace(type, " ", "_"), 1))) as new_type from mytable;
但我得到的结果是这样的:
+-------------------+
| new_type |
+-------------------+
| C |
| C |
| F |
+-------------------+
我希望结果删除下划线并将其替换为空格,并将每个单词的每个首字母大写,如下所示:
+-------------------+
| new_type |
+-------------------+
|Cashback Percentage|
| Cashback Fix |
| Fix |
+-------------------+
最佳答案
您走在正确的轨道上。这种方法是先进行连接,将第一个字母大写,然后对整个字符串进行替换,将下划线与空格交换。
SELECT
type,
REPLACE(CONCAT(UPPER(LEFT(type, 1)), SUBSTRING(type, 2)), '_', ' ') AS output
FROM yourTable;
Demo
关于mysql - 替换 MySQL 中的下划线和首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54086308/