Пример с
й, но простой пример. Предположим, у меня есть таблица «Предмет», где я храню итоги полученных предметов.
Item_Name Items_In_Stock
Название предмета здесь является первичным ключом. Как мне добиться следующего, когда я получу предмет А в количестве X.
Если элемент не существует, я вставляю новую запись для элемента A и устанавливаю элементы на складе равными X, и если существует запись, где элементы на складе были Y, тогда новое значение в элементах на складе равно (X + Y)
INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A' )
Моя проблема в том, что у меня есть несколько столбцов в моей фактической таблице. Это хорошая идея, чтобы написать несколько операторов выбора в части обновления?
Конечно, я могу сделать это в коде, но есть ли лучший способ?