sql >> Database >  >> RDS >> Mysql

OP DUPLICATE KEY UPDATE met WHERE voorwaarde

Het gebruik van IF() zou moeten werken, hoewel het niet leuk is:

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 )

Werk de velden alleen bij met nieuwe waarden als aan de voorwaarde is voldaan, anders behoudt u de oude.




  1. SQL Server 2005 draaien op onbekend aantal kolommen

  2. Meerdere rijen invoegen in één SQL-query?

  3. Moet ik COUNT allemaal samen vermijden in InnoDB?

  4. Doctrine houdt entiteit niet vol met booleaanse waarden en PDO::ATTR_EMULATE_PREPARES =false in Mysql