簡體   English   中英

MySQL用逗號分隔列表刪除多個記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM