2012-09-28 99 views
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 

任何幫助嗎?

數據例如:也

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

注意,:

Raw Materials & Chemicals > Rubber & Elastomers 

應該更新到

RAW MATERIALS & CHEMICALS > Rubber & Elastomers 

回答

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

+0

我不知道爲什麼,但我得到:/ *受影響的行:0發現行數:0警告:0 –

+0

@loops請參閱我的編輯 – Taryn

2

UPDATE引用表,而不是要更新的列,如你不需要使用帶字符串函數的SELECT,它們返回結果沒有它。

+0

正如我對bluefeet說的,顯然有些事情出錯了。 –

+0

請提供樣本數據和您正在運行的確切查詢。 – RedFilter

+0

問題已更新,謝謝 –

相關問題