ver validar una tabla sino saber registros registro insertar existe consultar comprobar como actualizar mysql sql sql-insert

validar - mysql: inserte el registro si no existe, devuelva el ID del registro



sql ver si existe registro (4)

Aquí está el estado de mysql para insertar, si no existe, y devolver la identificación ya sea nueva inserción o antigua

INSERT INTO `tags` (`tag`) SELECT ''myvalue1'' FROM tags WHERE NOT EXISTS (SELECT id FROM `tags` WHERE `tag`=''myvalue1'') LIMIT 1; select * from brand where `tag`=''myvalue1''

Necesito insertar valores únicos en una tabla, y necesito los identificadores de los registros. Necesito insertar esos identificadores en la tabla de relaciones. Necesito la consulta para insertar el registro. Si no existe, devuelva el identificador de inserción, si existe devuelva la clave principal del registro ).

y quiero hacer esto para varios valores, como naranja, mango, plátano, como inserto por lotes.

esquema:

------------ id | tag | ------------ 1 | orange| ------------

Tengo trid esto para un solo registro

INSERT INTO `tags` (`tag`) SELECT ''myvalue1'' FROM tags WHERE NOT EXISTS (SELECT 1 FROM `tags` WHERE `tag`=''myvalue1'') LIMIT 1

publiqué la pregunta para encontrar alguna solución optimizada, no quiero usar bucles adicionales en el código para coincidir con los valores de db.



Hay un ejemplo en la página de documentación para INSERT ... ON DUPLICATE KEY UPDATE :

Su consulta se vería así:

INSERT INTO `tags` (`tag`) VALUES (''myvalue1'') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), `tag`=''myvalue1''; SELECT LAST_INSERT_ID();