mysql - 替换 MySQL 中的下划线和首字母大写

标签 mysql string

我有一列包含这样的字符串:

+-------------------+
|       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;

enter image description here

Demo

关于mysql - 替换 MySQL 中的下划线和首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54086308/

相关文章:

python - MySQL 精确短语匹配

Python:在字符串中查找模式

php - 评估存储为字符串的多个条件

mysql - 在mysql中搜索查询

mysql - 为什么我必须在 mysql 子查询中将 bit(1) 转换为 unsigned?

python - 如何使用 python 更新 mysql 中仅以 (.%) 结尾的 varchar 字段

php 报告/查询生成器/设计器

c - 删除部分字符串的函数

c++ - 在自定义 C++ 异常类中消失的字符串

c++ - 如何获取一个字符串在内存中实际占用的字节数?