que he visto lo siguiente (utilizando la opción VALORES):¿Puedo usar ON DUPLICATE KEY UPDATE con una consulta INSERT usando la opción SET?
$query = "INSERT INTO $table (column-1, column-2, column-3) VALUES ('value-1', 'value-2', 'value-3') ON DUPLICATE KEY UPDATE SET column1 = value1, column2 = value2, column3 = value3, ID=LAST_INSERT_ID(ID)";
... pero no puedo imaginar cómo agregar EN DUPLICADO KEY UPDATE a lo que estoy usando:
$query = "INSERT INTO $table SET
column-1 ='value-1',
column-2 ='value-2',
column-3 ='value-3'
";
por ejemplo :, pseudo-código
$query = "INSERT INTO $table SET
column-1 ='value-1',
column-2 ='value-2',
column-3 ='value-3'
ON DUPLICATE KEY UPDATE SET
column1 = value1,
column2 = value2,
column3 = value3,
$id=LAST_INSERT_ID(id)";
$my_id = mysql_insert_id();
";
que iba a encontrar este último más fácil de leer. Agradecería una aclaración, no encontró un ejemplo en el manual.
aplausos
Gracias Kevin. Mi columna de ID es clave principal y tiene índice único. Creo que entiendo cómo funciona ON DUPLICATE KEY, pero mi problema es agregarlo a una sintaxis INSERT diferente, una usando SET en oposición a VALUES. Me gustaría ver un ejemplo de esa sintaxis si es factible. – shecky
y solo para aclarar: quiero utilizar ACTUALIZACIÓN DE LLAVE DUPLICADA para evitar duplicaciones en la actualización, aunque estoy usando un encabezado para redirigir al usuario a la página de resultados, pero no puedo evitar que el usuario regrese y vuelva a enviarla. así que sí, pensé que actualizaría todos los campos si el ID existe. – shecky
He modificado el ejemplo para usar el formato que está preguntando, ¡al menos creo que sí! –