ON DUPLICATE KEY UPDATE和where同时使用

比如说我想这样,当where成立的时候才做更新,否则就不更新,我用下面的写法是错误的

INSERT INTO table1 SET field1=aa, field2=bb, field3=cc
ON DUPLICATE KEY UPDATE SET field1=aa, field2=bb, field3=cc WHERE field4=zz;

那么应该怎么改呢?
应该这样

INSERT INTO table1 SET 
 field1=aa, 
 field2=bb, 
 field3=cc 
ON DUPLICATE KEY UPDATE SET 
 field1 = IF( field4 = zz, aa, field1 ),
 field2 = IF( field4 = zz, bb, field2 ),
 field3 = IF( field4 = zz, cc, field3 )

用IF
如果满足条件,那么就用新值更新,否则保留原值


版权声明:本文为lqq404270201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。