0

MYSQLでコンマ区切りの文字列をループするにはどうすればよいですか。

これが私が欲しいものです

 select exp from expertise where user_name = 'userName';

 if exp != null then
     LOOP
       INSERT into table T1(exp1) VALUES(exp)
     UNTIL NO COMMA FOUND
 END IF;

これどうやってするの ?

4

1 に答える 1

4

プランA:

文字列を解析してINSERTステートメントを実行するストアドプロシージャを記述します。

次のプラン:

'exp'値からINSERTステートメント文字列を作成し、プリペアドステートメントを使用してステートメントを実行します。


例:

文字列があるとします-'リンゴ、チェリー、イチゴ'。このようなINSERTステートメントを生成する必要があります-INSERT INTO table_name VALUES('apple'),('cherry'),('strawberry')

-- build a query
SET @table_name = 'table1';
SET @words = 'apple,cherry,strawberry';
SET @query = CONCAT('INSERT INTO ', @table_name, ' VALUES(\'',  REPLACE(@words, ',', '\'),(\''), '\')');

-- run the query
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
于 2012-05-22T06:37:21.047 に答える