【发布时间】:2017-01-25 08:52:51
【问题描述】:
我需要在 mysql 中创建一个存储过程,通过提供 id 列表作为逗号分隔列表来从表中删除多条记录。
例子
(请注意表中的Id列是整数)
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `deleteLines`(IN $ids varchar(1000))
BEGIN
select * from line where $ids in ($ids);
END$$
DELIMITER;
CALL deleteLines('1,3,5,12');
在这种情况下删除多条记录的最佳方法是什么?
【问题讨论】:
-
sproc 的创建是概要的特定部分吗?
-
为什么需要一个程序来完成如此简单的任务? stackoverflow.com/questions/2615566/delete-where-id-in-list
-
此存储过程将由应用程序调用。我没有从应用程序调用内联 SQL 语句,而是将其移至存储过程。稍后如果需要修改,无需编译应用程序即可轻松完成任何操作。