在MySQL的INSERT UPDATE中,更改更改时间无效。
代码:
INSERT INTO g_ladenpreis
(ordernumber,changetime,bruttoladenpreis,bruttouvp)
VALUES (71057375,'2018-07-11 23:55:21',19,39.95)
ON DUPLICATE KEY UPDATE
bruttoladenpreis = IF(19 != bruttoladenpreis, 19, bruttoladenpreis),
bruttouvp = IF(19 != bruttoladenpreis, 39.95, bruttouvp),
changetime = IF(19 != bruttoladenpreis, '2018-07-11 23:55:21', changetime);
更改两个价格是可行的,但更改时间保持不变。
你有个主意吗?
答案 0 :(得分:2)
您需要最后将作业分配到bruttoladenpreis
。否则,后面的IF()
表达式将使用更新后的值。因此,如果在运行查询时不是19
,它将首先将其更改为19
,然后接下来的IF()
测试将失败,并且它们的值将保持不变。>
INSERT INTO g_ladenpreis
(ordernumber,changetime,bruttoladenpreis,bruttouvp)
VALUES (71057375,'2018-07-11 23:55:21',19,39.95)
ON DUPLICATE KEY UPDATE
bruttouvp = IF(19 != bruttoladenpreis, 39.95, bruttouvp),
changetime = IF(19 != bruttoladenpreis, '2018-07-11 23:55:21', changetime),
bruttoladenpreis = IF(19 != bruttoladenpreis, 19, bruttoladenpreis)