sql >> Databasteknik >  >> RDS >> Mysql

PÅ DUBLIKAT UPPDATERING AV NYCKEL med WHERE-villkor

Att använda IF() borde fungera, även om det inte är trevligt:

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 )

Uppdatera bara fälten med nya värden om villkoret är uppfyllt, annars behåll de gamla.




  1. PHP - MySQL får värdet av ut parameter från en lagrad procedur

  2. Php, Mysql Välj från tabell där rad =? det är möjligt?

  3. MySql-fråga:inkludera dagar som har COUNT(id) ==0 men bara under de senaste 30 dagarna

  4. Lagring av långa binära (rådata) strängar