Вставить выбрать ON DUPLICATE KEY вопрос

0

Я задал этот вопрос вчера:

Вставить выбор с вопросом крутки


Теперь у меня есть проблема, что я хочу, чтобы данные обновлялись, если это повторяющаяся строка.
Поэтому я обнаружил, что могу сделать это, сделав это:

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

Кто-нибудь понял, возможно ли это?

Теги:
duplicates

1 ответ

0
   INSERT 
     INTO product_quantity (groupId, productId, quantity) 
   VALUES (3, productId, quantity) 
     FROM product_quantity  
       ON DUPLICATE KEY 
   UPDATE quantity = 5 + VALUES(quantity); 

Я думаю, что это сделает то, что вам нужно.

Ещё вопросы

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