我只想在满足条件的情况下更新行,如果不满足则将值保留在原来的列中
如果finish_date
为空,则start_date
不应更新,保持原始值。
如果finish_value
不为空,请更新start_date
当我运行以下查询时,它将start_date
更新为无论传入的值。我在做什么错了?
INSERT INTO barcode_queue (barcode, start_date) VALUES ('X17291211902P02V0010', '2019-06-01 00:00:00')
ON DUPLICATE KEY UPDATE
start_date = (CASE WHEN finish_date <> NULL THEN VALUES(start_date) ELSE start_date END),
finish_date = null;
答案 0 :(得分:0)
感谢帮助。这是解决方案
INSERT INTO barcode_queue (barcode, start_date) VALUES ('X17291211902P02V0010', '2019-06-01 00:00:00')
ON DUPLICATE KEY UPDATE
start_date = (CASE WHEN finish_date IS NULL THEN start_date ELSE VALUES(start_date) END),
finish_date = null;