mysql 存储过程 通过传入ids[]数组参数, 实现批量删除数据!

发布于 2022-09-01 15:33:16 字数 63 浏览 15 评论 0

求大神解答。 存储过程,接收的参数为,保存多个id的字符串数组 ,以实现批量删除的 ,这样的存储过程怎么写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

柠北森屋 2022-09-08 15:33:16

php的思路可以是这样的:

$id = [1,2,3,5,6];//传入的id数组

$delete_in = implode(",", $id);// 1,2,3,5,6

$query = ... delete where id in ( $delete_id ); //大概是这样的


祁梦 2022-09-08 15:33:16

create procedure sp_split_string
(
@string NVARCHAR(4000)
)
AS
BEGIN
DECLARE @object_id nvarchar(500)
DECLARE @i INT
DECLARE @len INT
print @string
IF (@string IS NULL) OR (LTRIM(@string) = '')
RETURN

WHILE CHARINDEX(',',@string) > 0
    BEGIN
        SET @len = LEN(@string)
        SET @i = CHARINDEX(',', @string)
        SET @object_id = LEFT(@string, @i-1)

        INSERT INTO a (id) VALUES (@object_id)--少做修改,改成需要的sql语句即可
        SET @string = RIGHT(@string, @len - @i)
    END
SET @object_id = @string
INSERT INTO a (id) VALUES (@object_id)--少做修改,改成需要的sql语句即可

END
go

--测试
-- select * from a
-- exec sp_split_string '102,103,105,106,107,108,200,500,306,408'
-- select * from a

眼中杀气 2022-09-08 15:33:16

为什么一定要使用存储过程呢??用循环执行Sql 不行吗???

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文