Mysql
 sql >> база данни >  >> RDS >> Mysql

при актуализация на дублиран ключ с условие?

Друг вариант:

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

Предупреждение: Това ще се провали, ако предадената стойност за count е NULL (вместо 2 ). Той ще актуализира колоната с NULL . Така че е по-добре да използвате IF() или CASE клауза.

Освен ако не предпочитате (там отива елегантността...):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пребройте редовете в таблицата

  2. Kubernetes не копира данни в монтиран том

  3. Django група по дати и стойности SUM

  4. MySQL връща първия и последния запис за последователни идентични резултати

  5. По-добър начин за изпълнение на множество MySQL команди с помощта на шел скрипт