[英]MySql delete multiple records by comma separated list
我需要在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');
在這種情況下刪除多個記錄的最佳方法是什么?
如果必須這樣做,請使用find_in_set()
:
select * from line where find_in_set(id, in_ids);
實際上,如果要刪除記錄,則定義應看起來更像這樣:
DELIMITER $$
CREATE PROCEDURE `deleteLines`(
IN in_ids varchar(1000)
)
BEGIN
delete from line
where find_in_set(id, in_ids);
END$$
DELIMITER;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.