sql >> Base de Datos >  >> RDS >> Mysql

En la actualización de clave duplicada:varias columnas

Bueno, esto es viejo. Pero, por supuesto, solo necesita proporcionar un valor una vez , no hay razón para agregarlo por segunda vez en la consulta (lo cual es útil para múltiples inserciones o declaraciones preparadas):

INSERT INTO table1
  (col1, col2, col3, col4)
VALUES
  ('val1', 'val2', 'val3', 'val4')
ON DUPLICATE KEY UPDATE
  col2=VALUES(col2),
  col3=VALUES(col3) [,...]

Lo que tiene como ventaja que seguirá funcionando para una instrucción de inserción múltiple:

INSERT INTO table1
  (col1, col2, col3, col4)
VALUES
  ('val1', 'val2', 'val3', 'val4'),
  ('val5', 'val6', 'val7', 'val8'),
  ('val9', 'val10', 'val11', 'val12')
ON DUPLICATE KEY UPDATE
  col2=VALUES(col2),
  col3=VALUES(col3) [,...]