规范化字段中的文本

q3aa0525  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(273)

我有一个值类似于“door left”的字段,我想将其更改为“door left”。
我在这个网站上遇到这个问题:

UPDATE tbl
SET field1 = CONCAT(UCASE(LEFT(field1, 1)), 
                             LCASE(SUBSTRING(field1, 2)));

上面的查询将“door left”更改为“door left”。我不想任何东西后-被更新。所以应该是“门左”。
我该怎么做?

1u4esq0p

1u4esq0p1#

你可以用 sustring_index() 把绳子分开 '-' ,然后使用手头已有的逻辑:

update tbl
set field = concat(
    upper(left(substring_index(field1, '-', 1), 1)),
    lower(substr(substring_index(field1, '-', 1), 2)),
    '-',
    upper(substring_index(field1, '-', -1))
)

周围 upper() 在最后一部分中,示例字符串并不严格需要字符串,它从大写开始。我故意留着它,以防它对其他情况有用(而且也不会有什么坏处)。

相关问题