0

我有这个查询来通过 > 选择子字符串的一部分。

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 
4

2 回答 2

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

于 2012-09-28T15:38:55.553 回答
2

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

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

另请注意,您不需要使用SELECT字符串函数,它们会在没有它的情况下返回结果。

于 2012-09-28T15:38:49.290 回答