【问题标题】:MySQL: Insert data into table, some data comes from another table (relational)MySQL:将数据插入表中,一些数据来自另一个表(关系)
【发布时间】:2014-09-09 01:48:54
【问题描述】:

我想同时运行以下两个查询:

SELECT id FROM user_settings WHERE ......
$id = id_from_query_above();
$value = 100; // this could be anything
INSERT INTO user_config (sid, value) VALUES($id, $value) ON DUPLICATE KEY UPDATE value=$value

(请注意,如果已插入与主键关联的行,我想更新)。

【问题讨论】:

    标签: mysql insert relational-database insert-update


    【解决方案1】:

    你想要insert . . . select 语法:

    INSERT INTO user_config(sid, value)
        SELECT id, $value
        FROM user_settings
        WHERE ......
        ON DUPLICATE KEY UPDATE value = $value;
    

    【讨论】:

    • 效果很好,谢谢 - 我不知道我可以将SELECT 语句与非表格行一起使用(即$value)。是否可以通过多次插入/更新来做类似的事情?
    • 这将进行多次插入。我不知道关于更新的问题是什么,但update 查询中也允许子查询。
    • 我的意思是如果已插入行则更新。您能否提供一个此查询可以插入 2 行的示例?
    • @KeirSimmons 。 . .这是一个例子。 select 可以返回多行。
    • 那么$value 的值呢(因为每次插入都会有所不同)?
    猜你喜欢
    • 2014-09-09
    • 2013-04-25
    • 2015-03-24
    • 2020-01-30
    • 2014-10-11
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多