sql >> Databáze >  >> RDS >> Mysql

při aktualizaci duplicitního klíče s podmínkou?

Další možnost:

INSERT INTO tbl (count, otherID) 
  VALUES (2, 'a') 
ON DUPLICATE KEY UPDATE 
  count = GREATEST(VALUES(count), count) ;

Upozornění: To se nezdaří, pokud byla předána hodnota count je NULL (místo 2 ). Aktualizuje sloupec NULL . Je tedy lepší použít IF() nebo CASE doložka.

Pokud preferujete (tady jde o eleganci...):

ON DUPLICATE KEY UPDATE 
  count = GREATEST(COALESCE(VALUES(count), count), count) ;


  1. Chování NOT LIKE s hodnotami NULL

  2. Jak deklarovat a zobrazit proměnnou v Oracle

  3. Notifikační systém pomocí php a mysql

  4. Kód chyby:1215. Nelze přidat omezení cizího klíče (cizí klíče)