gpt4 book ai didi

MySql,拆分一个字符串并插入到表中

转载 作者:可可西里 更新时间:2023-11-01 06:31:51 25 4
gpt4 key购买 nike

我的存储过程有两个输入。一个是“RoledID”,第二个是“MenuIDs”。 'MenusIDs' 是需要用 RoleID 插入的逗号分隔菜单 ID 列表。 RoleId 只是一个 INT,我们需要将此 RoleID 与每个 MenuID 相对应。我的表“RolesMenus”包含两列,一列用于 MenuID,一列用于 RoleID。

现在我需要拆分 MenuID 并将每个 MenuID 与 RoleID 插入。

如何为其编写存储过程?

最佳答案

您可以构建一个 INSERT 查询(因为语句允许插入多条记录)并使用 prepared statements 运行它,例如-

SET @MenuIDs = '1,2,3';
SET @RoledID = 100;

SET @values = REPLACE(@MenuIDs, ',', CONCAT(', ', @RoledID, '),('));
SET @values = CONCAT('(', @values, ', ', @RoledID, ')'); -- This produces a string like this -> (1, 100),(2, 100),(3, 100)

SET @insert = CONCAT('INSERT INTO RolesMenus VALUES', @values); -- Build INSERT statement like this -> INSERT INTO RolesMenus VALUES(1, 100),(2, 100),(3, 100)

-- Execute INSERT statement
PREPARE stmt FROM @insert;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

如您所见,它可以在没有存储过程的情况下完成。

关于MySql,拆分一个字符串并插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com