我的问题很简单。
如果新价格低于实际价格,我正在尝试重复关键更新供应商名称和价格。 查询看起来像这样,不起作用:
INSERT INTO import_queue (`IQ_ART_ID`,`IQ_PRICE`, `IQ_SUPPLIER`)
VALUES (2987621,'105.03', 'Supplier name')
ON DUPLICATE KEY UPDATE IQ_SUPPLIER =
IF(IQ_PRICE > 105.03, 'Supplier name', IQ_SUPPLIER) AND IQ_PRICE = IF(IQ_PRICE > 105.03,105.03, IQ_PRICE)
感谢您提供任何提示
答案 0 :(得分:-2)
update
语法似乎有点过时了。您错过了SET
关键字,多个列应以,
而不是AND
分隔:
ON DUPLICATE KEY UPDATE
IQ_SUPPLIER = IF(IQ_PRICE > 105.03, 'Supplier name', IQ_SUPPLIER)
AND IQ_PRICE = IF(IQ_PRICE > 105.03,105.03, IQ_PRICE)
^^^
请改为尝试:
ON DUPLICATE KEY UPDATE
SET IQ_SUPPLIER = IF(IQ_PRICE > 105.03, 'Supplier name', IQ_SUPPLIER)
, IQ_PRICE = IF(IQ_PRICE > 105.03, 105.03, IQ_PRICE)