我希望分割逗号分隔值,然后将每个值插入mysql存储过程中的另一个表中

我希望分割逗号分隔值,然后将每个值插入mysql存储过程中的另一个表中,mysql,stored-procedures,triggers,Mysql,Stored Procedures,Triggers,下表列出了用户 -------------------- portal_id | user_id 1 | 100 1 | 101 1 | 102 1 | 103 --------------------- SELECT group_concat(user_id) as toUserIds FROM users where portal_id=1; 我进去后,图塞里德的电话号码是100101102103 在我想要插入文档\用户\外部参照表后,如下所示(相同的文

下表列出了用户

--------------------
portal_id | user_id
1     | 100
1     | 101 
1     | 102
1     | 103
---------------------

SELECT group_concat(user_id) as toUserIds FROM users where portal_id=1;
我进去后,图塞里德的电话号码是100101102103

在我想要插入文档\用户\外部参照表后,如下所示(相同的文档id,不同的用户id)


在上面的插入值中,我需要循环或迭代器。

不要使用
GROUP\u CONCAT()
,只需使用:


我想在很多地方使用上面的问题,我有附表和查询简化模型,而不是确切的完整模型。我想要循环或迭代器模型eggyal。@KrishnaS:SQL并不是真正为处理“循环”和“迭代器”而设计的,它是为处理集合而设计的。几乎任何可能对数据执行的操作,无论多么复杂,都可以使用SQL中强大的集合操作简洁地表示出来。这个答案是你所问问题的正确答案。如果您的实际问题更复杂,您需要解释为什么此解决方案不适用,以便人们可以帮助您找到正确的SQL集操作来解决它。首先,我感谢您,我混淆了以下查询,“插入到文档\用户\外部参照(文档\ id,用户\ id)选择docId,users\u id FROM users WHERE portal\u id=1“docId已声明,并从另一个表中获取数据,因此我使用SELECT来选择没有docId列的用户表,因此我如何实现它。谢谢,您现在正在查询工作。我完全改变了我的疑问。
insert into doc_user_xref(doc_id,user_id)values(5211,100);
insert into doc_user_xref(doc_id,user_id)values(5211,101); 
insert into doc_user_xref(doc_id,user_id)values(5211,102);
insert into doc_user_xref(doc_id,user_id)values(5211,103);
INSERT INTO doc_user_xref
  (doc_id, user_id)
SELECT 5211, user_id
FROM   users
WHERE  portal_id = 1