【问题标题】:Insert row in table for each result of query in mysql [duplicate]为mysql中的每个查询结果在表中插入行[重复]
【发布时间】: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!')

如何做到这一点?

【问题讨论】:

    标签: mysql sql insert


    【解决方案1】:

    使用insert . . . select:

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

    【讨论】:

    • 谢谢!这很奏效,我插入 20k 行的速度比我预期的要快得多。
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 2016-02-16
    • 2015-05-13
    • 2020-03-25
    • 2014-10-20
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多