この単一のステートメントを使用して複数のレコード (約千件) を更新しようとしています (これは毎晩実行されるプロセスです)。以下のステートメントには、簡単にするために 3 つの製品のみが含まれています。
INSERT INTO productinventory
(ProductID, VendorID, CustomerPrice, ProductOverrides)
VALUES
(123, 3, 100.00, 'CustomerPrice'),
(124, 3, 100.00, 'CustomerPrice'),
(125, 3, 100.00, 'CustomerPrice')
ON DUPLICATE KEY UPDATE
CustomerPrice = VALUES(CustomerPrice),
ProductOverrides = CONCAT_WS(',', ProductOverrides, 'CustomerPrice')
;
このステートメントが実行されるたびにProductOverrides
列にテキストが追加されることを除いて、すべて正常に機能するため、2 回実行すると次のようになります。'CustomerPrice'
顧客価格,顧客価格
ステートメントで実行したいのは'CustomerPrice'
、ProductOverrides
列に追加することですが、その文字列がまだそこに存在しない場合に限ります。そのため、このステートメントを何回実行しても、その文字列は 1 回しか含まれません。それを達成するためにこのステートメントを変更するにはどうすればよいですか?