我有一个像'DOOR-LEFT'这样的值,我想将其更改为'Door-LEFT'。
我在此网站上遇到此查询:
UPDATE tbl
SET field1 = CONCAT(UCASE(LEFT(field1, 1)),
LCASE(SUBSTRING(field1, 2)));
以上查询将“ DOOR-LEFT”更改为“ Door-left”。我不希望-之后有任何更新。因此它应该是“ Door-LEFT”。
我该怎么做?
答案 0 :(得分:0)
您可以使用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()
并不是严格要求的,而示例字符串都是大写的。我故意将其保留,以防其他情况下有用(并且无论如何也不会造成伤害)。