Выберите в ON DUPLICATE KEY со значениями, идущими от оператора вставки

0

У меня есть инструкция INSERT с инструкцией SELECT "ON DUPLICATE Key". Я хочу значение инструкций INSERT в предложении WHERE инструкции SELECT.

Вот пример, который я попытался, но не смог получить значение вставки.

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

Я думаю, вы хотите VALUES(). Вы должны указать свои столбцы, поэтому я думаю, что вы хотите:

INSERT INTO table2 (a, b, c)
    VALUES (a, b, c),
           (a1, b1, c1),
           (a2, b2, c3) 
ON DUPLICATE KEY UPDATE c = VALUES(c);
  • 0
    Без указания столбца не имеет никакого значения. Проблема в select, когда я использую select (select * from table1), где where не распознает значения (c) вставки. Если я не использовал Выберите значение (с) работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню