2017-02-14 5 views
0

文字列を(テーブルのすべての行) ""で分割し、結果を同じテーブルの別の列に挿入する方法をお尋ねします?何かアドバイスのためMySQL文字列を ""で区切り、結果を別の列に挿入する方法は?

感謝します。

表の構造体の例:

------------------------------------------ 
| Original string | Spliced string  | 
------------------------------------------ 
| Some string 001 | Some,String,001  | 
------------------------------------------ 
+2

質問を編集し、サンプルデータと希望する結果を提供してください。 –

答えて

0

私は「スプリット」区切りの文字列をする必要がある場合、私はおそらく気の利いたSUBSTRING_INDEX機能を利用すると思います。しかし、知っておくべきいくつかの欠点があります。

私が取るアプローチは、必ず最初にSELECT文を書くことです。これには、別の列に代入したい "分離された"値を返すSELECTリストの式も含まれます。私はUPDATE文を書く前に、SELECT文を使ってこれらの式をテストしました。

SELECT t.id 
    , t.column_i_want_to_split 
    , expr1 
    FROM mytable t 
ORDER BY t.id 

特定の例をテストするために、私は表現(s)は、私は別の列に割り当てる値を返すがあったら、私は思いますインライン・ビューの使用

SELECT t.id 
    , t.note 
    , t.val 
    , expr1 
    FROM (SELECT 1 AS id, 'empty string test' AS note, '' AS val 
     UNION ALL SELECT 2, 'null', NULL 
     UNION ALL SELECT 3, 'one space', ' ' 
     UNION ALL SELECT 4, 'four spaces', ' ' 
     UNION ALL SELECT 5, 'test5', ' abc def ' 
     UNION ALL SELECT 6, 'test6', 'g hi kl m' 
     ) t 
    ORDER BY t.id 

を作ると思いますSELECTをUPDATEステートメントに変換します。すべての行を処理するには、WHERE句を省略します。あなたが達成しようとしているかのより多くの決定的な仕様なし

UPDATE mytable t 
    SET t.another_column = expr1 

、または少なくともいくつかの具体例、私たちは推測しています。問題の一般的な説明だけを考えると、私たちが提供できるものは一般的なアドバイスです。

関連する問題