在输入变量数组上插入值

时间:2017-01-19 22:27:52

标签: mysql arrays stored-procedures input

我从外部应用程序获得的客户列表的输入如下,该外部应用程序进入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