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、複数の列を次のように区切る必要があり,ます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 に答える