MySQL DUPLICATE KEY Обновление только в случае изменения цены - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу изменить / обновить только строку, если цена изменилась на уже существующую цену.

Я пробовал это, и оно работает, но оно также обновляется, если цена так же, как и раньше. Я вижу это, потому что у меня там есть отметка времени, которая имеет ON UPDATE CURRENT_TIMESTAMP

Это мой код

INSERT INTO items (name, isbn, siteid, price, pricebefore3, site, link, imagelink) VALUES (%s, %s, %s, REPLACE(%s, ',', '.'), REPLACE(%s, ',', '.'), %s, %s, %s)
    ON DUPLICATE KEY UPDATE
        pricebefore = IF(price = VALUES(price), pricebefore, price),
        price = VALUES(price),
        pricebefore2 = pricebefore,
        link = %s,
        site = %s,
        pricebefore3 = REPLACE(%s, ',', '.'),
        name = %s;""", 
    (item['name'], 
    item['isbn'],
    item['siteid'], 
    item['price'].replace('.', ''), 
    item['avg_price'].replace('.', ''), 
    item['site'], 
    item['link'], 
    item['imagelink'],
    item['link'], 
    item['site'],
    item['avg_price'].replace('.', ''), 
    item['name']))

Как я могу сделать, чтобы он обновлялся только, если цена отличается от новый item['price'] Только если это произойдет, я хочу обновить, а не каждый раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...