2010-02-08 20 views
5

¿Cómo puedo usar el ON DUPLICATE UPDATE con un valor múltiple INSERTAR?inserción condicional de mysql en la actualización duplicada - registros múltiples

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9); 
+0

¿Cuál es su resultado deseado? Solo puedo obtener MySQL para permitir '(1,5,6) ON DUPLICATE KEY UPDATE key_id = key_id + 1', pero en la ejecución solo tengo una fila en la tabla, valores:' 2, 2, 3'. –

+0

y el SQL es un ejemplo, pero el resultado esperado sería ejecutar una consulta que insertaría si fuera nueva, actualizar si está duplicada para valores múltiples. entonces si key_id 1, 3 y 5 ya están en la base de datos y ejecuto INSERT para 2, 3, 4 y 6. 2,4 y 6 deberían insertarse y 3 deberían actualizarse ya que era un duplicado –

Respuesta

11

no puedo probarlo ahora mismo, pero no puedo utilizar esta sintaxis

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

del manual?

adivinar su sintaxis sería el siguiente aspecto:

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9) 
ON DUPLICATE KEY 
    UPDATE field1=VALUES(field1), field2=VALUES(field2); 
+0

Debo haberme olvidado de esto, thx –

Cuestiones relacionadas