为mysql中的每个查询结果在表中插入行[重复]

Posted

技术标签:

【中文标题】为mysql中的每个查询结果在表中插入行[重复]【英文标题】:Insert row in table for each result of query in mysql [duplicate] 【发布时间】:2019-02-26 01:50:02 【问题描述】:

我的数据库中有 2 个表(朋友/留言簿)。

我正在使用以下查询来选择特定用户的所有朋友。

SELECT FID FROM `friends` as F WHERE UID = 1

我想做的是在“留言簿”表中为上述查询返回的每个结果插入一行。

INSERT INTO `guestbook` (`FID`, `UID`, `message`) VALUES ('FID SHOULD BE EQUAL TO FID FROM PREVIOUS QUERY', '1', 'message goes here!')

如何做到这一点?

【问题讨论】:

【参考方案1】:

使用insert . . . select:

INSERT INTO `guestbook` (`FID`, `UID`, `message`)
    SELECT FID, 1, 'message'
    FROM `friends` as F
    WHERE UID = 1;

【讨论】:

谢谢!这很奏效,我插入 20k 行的速度比我预期的要快得多。

以上是关于为mysql中的每个查询结果在表中插入行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果插入语句给出重复键异常(在表中找到行 id=1)如何更新 JDBC(Postgresql)中的语句

在表中插入行的副本并检查重复项

我的 pdo 结果在表中重复

每次在表中插入后根据查询结果发送电子邮件 - Talend

如何向表中插入数据以及如何更新删除表中的数据

使用 Mysql 和 PHP 在表中汇总 [重复]