Я задал этот вопрос вчера:
Вставить выбор с вопросом крутки
Теперь у меня есть проблема, что я хочу, чтобы данные обновлялись, если это повторяющаяся строка.
Поэтому я обнаружил, что могу сделать это, сделав это:
insert into product_quantity
(groupId, productId, quantity)
select 3, productId, quantity
from product_quantity
ON DUPLICATE KEY UPDATE
product_quantity.quantity = VALUES(product_quantity.quantity);
Но я хочу, чтобы количество обновлялось, добавляя количество к уже имеющейся величине.
Итак, я хочу что-то вроде этого:
ON DUPLICATE KEY UPDATE
product_quantity.quantity =
VALUES(product_quantity.quantity) + product_quantity.quantity;
Итак, если я получил:
id----groupId----productId----quantity 1 ----- 2 ------------2--------------5 2 ----- 3 ------------2--------------5
Если groupId и productId уникальны.
И я делаю запрос Insert-select-duplicate:
insert into product_quantity
(groupId, productId, quantity)
select 3, 2, 5
from product_quantity
ON DUPLICATE KEY UPDATE
product_quantity.quantity = VALUES(product_quantity.quantity) + *OLD QUANTITY*;
MySql должен добавить количество в строке 1 в строку 2, чтобы оно выглядело следующим образом:
id----groupId----productId----quantity 1 ----- 2 ------------2--------------5 2 ----- 3 ------------2--------------10
Кто-нибудь понял, возможно ли это?
INSERT
INTO product_quantity (groupId, productId, quantity)
VALUES (3, productId, quantity)
FROM product_quantity
ON DUPLICATE KEY
UPDATE quantity = 5 + VALUES(quantity);
Я думаю, что это сделает то, что вам нужно.