1

我有一个简单的问题。

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

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)

谢谢你的任何提示

4

1 回答 1

-2

update语法似乎有点不对劲。您缺少SET关键字,并且多列应该用,not分隔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)
于 2012-06-19T08:23:02.413 回答