MySQL,IF ON DUPLICATE KEY

时间:2012-06-19 08:20:09

标签: mysql sql

我的问题很简单。

如果新价格低于实际价格,我正在尝试重复关键更新供应商名称和价格。 查询看起来像这样,不起作用:

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)

感谢您提供任何提示

1 个答案:

答案 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)