我从外部应用程序获得的客户列表的输入如下,该外部应用程序进入MySQL存储过程中的变量,如下所示:
"2841,2212,1231,xxxx,...,1221"
...调用input_clients
我想获取此列表并将其全部插入到具有字段client_id的临时表中。
我想知道是否有人可以指向我现有的脚本,或者告诉我如何在存储过程中对其进行格式化输入以便它可以用作
INSERT INTO select_Clients(client_id) VALUES (input_client1), (input_client2)
因为当前input_client将所有这些客户端存储在1个字符串中。
1 个答案:
答案 0 :(得分:0)
您可以在过程内部以字符串形式创建预准备语句,然后执行它:
SET @input =' 2841,2212,1231,1221&#39 ;;
DROP TEMPORARY TABLE IF EXISTS select_Clients;
CREATE TEMPORARY TABLE select_Clients(client_id INT);
SET @sql = CONCAT(' INSERT INTO select_Clients(client_id)VALUES(',REPLACE(@input,',','),(') ,')');
PREPARE stmt FROM @sql;
执行stmt;
http://rextester.com/FPDW88636