Глупый, но простой пример: Предположим, у меня есть таблица "Item", где я сохраняю итоговые значения получаемых элементов.
Item_Name Items_In_Stock
Здесь указывается имя элемента. Как достичь следующего, когда когда-либо получаю элемент А в количестве X.
Если элемент не существует, я вставляю новый реконструированный для Item A и устанавливаю элементы в запасе на X и если существует запись, в которой позиции на складе были Y, тогда новое значение в позициях на складе равно (X + У)
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' )
Моя проблема в том, что у меня есть несколько столбцов в моей фактической таблице. Это хорошая идея написать несколько операторов select в части обновления?
Конечно, я могу сделать это в коде, но есть ли лучший способ?