在mySQL中循环一个可能的逗号分隔字符串

时间:2012-05-22 06:27:53

标签: mysql

如何在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;

我该怎么做?

1 个答案:

答案 0 :(得分:3)

计划A:

编写一个解析字符串并运行INSERT语句的存储过程。

B计划:

从'exp'值构建INSERT语句字符串,并使用预准备语句来执行语句。


示例:

假设我们有一个字符串 - 'apple,cherry,strawberry'。我们必须生成这样的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;