在ON DUPLICATE KEY中选择带有来自Insert语句的值

时间:2018-08-06 20:29:25

标签: mysql sql

我有一个INSERT语句和SELECT语句“ ON DUPLICATE键”。我想要SELECT语句的WHERE子句中的INSERT语句的值。

这是我尝试的示例,但无法获取insert的值。

INSERT INTO table2 VALUES (a, b, c), (a1, b1, c1), (a2, b2, c3) 
ON DUPLICATE KEY UPDATE c = (SELECT c from table1 WHERE table1.a = VALUES(table2.a));

1 个答案:

答案 0 :(得分:0)

我认为您想要VALUES()。您应该指定列,所以我认为您想要这样做:

INSERT INTO table2 (a, b, c)
    VALUES (a, b, c),
           (a1, b1, c1),
           (a2, b2, c3) 
ON DUPLICATE KEY UPDATE c = VALUES(c);