2010-04-16 85 views
1

我想在MySQL中创建一个存储过程,其中一个输入参数需要以逗号分隔的整数列表。如何遍历每个整数并在其上运行更新语句?MySQL中的逗号分隔变量

我已经使用了它,但似乎无法找到任何可以用于MySQL的东西。

回答

0

嗯......好吧,在底部有一个讨论here in the MySQL reference关于采取逗号分隔的整数字符串并做一个替换,以获得它可以使用“IN”的东西。

我假设你的输入参数是一个VARCHAR在这里。

0

我知道了......

DECLARE i INT DEFAULT 0; 
DECLARE curId VARCHAR(100); 
WHILE SPLIT_STR(in_IdCommaDelimited, ',', i) != '' DO 

    SET curId = SPLIT_STR(in_IdCommaDelimited, ',', i); 

    UPDATE MyTable SET OrderNumber = i WHERE Id = curId; 

    SET i = i + 1; 

END WHILE; 
+0

这是假设你的输入参数是一个单一的VARCHAR值,而不是逗号分隔整数值列表。 – Kainax 2016-11-26 19:03:47