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 に答える