将子字符串更改为大写

时间:2012-09-28 15:36:49

标签: mysql

我有这个查询通过>。

选择子串的一部分
SELECT SUBSTRING_INDEX(translation, '>', 1) FROM categorias

我想要的是将子字符串更新为大写字母。

但是这个查询有一个sintax错误

UPDATE A.translation
SET A.translation = UPPER(SELECT SUBSTRING_INDEX(A.translation, '>', 1))
FROM categorias as A

任何帮助?

数据示例:

Raw Materials & Chemicals > Rubber & Elastomers 

应更新为

RAW MATERIALS & CHEMICALS > Rubber & Elastomers 

2 个答案:

答案 0 :(得分:3)

我相信你可以移除内部SELECT,并且可以稍微改变你的UPDATE语法:

UPDATE categorias
SET translation = UPPER(SUBSTRING_INDEX(translation, '>', 1))

根据您的评论,我认为您需要以下内容:

 UPDATE categorias
 SET translation 
  = CONCAT(
          UPPER(SUBSTRING_INDEX(translation, '>', 1)),
          SUBSTRING(translation, INSTR(translation, '>')));

请参阅SQL Fiddle with Demo

答案 1 :(得分:2)

UPDATE引用该表,而不是您要更新的列,例如:

UPDATE categorias 
SET translation = UPPER(SUBSTRING_INDEX(translation, '>', 1)) 

另请注意,您不需要将SELECT与字符串函数一起使用,如果没有它,则返回结果。