varios una todos tabla solo seleccionar registros registro obtener mostrar los eliminan datos consultas como campos mysql sql database insert normalization

todos - seleccionar un registro de una tabla mysql



¿Cómo obtengo la ID de varias filas insertadas en MySQL? (3)

  1. Lo obtiene a través de SELECT LAST_INSERT_ID(); o al tener su biblioteca framework / MySQL (en cualquier idioma) llame a mysql_insert_id() .

  2. Eso no funcionará Allí tiene que consultar los ID después de insertarlos.

Estoy insertando algunas palabras en una tabla de dos columnas con este comando:

INSERT IGNORE INTO terms (term) VALUES (''word1''), (''word2''), (''word3'');

  1. ¿Cómo puedo obtener la identificación (clave principal) de la fila en la que se inserta cada palabra? Me refiero a devolver un valor como "55,56,57" después de ejecutar INSERT . ¿MySQL tiene tal respuesta?

  2. El término columna es UNIQUE . Si un término ya existe, MySQL no lo insertará. ¿Es posible devolver la referencia para esta duplicación (es decir, el ID de la fila en la que existe el término)? Una respuesta como "55, 12 , 56".


¿Por qué no solo?

SELECT ID FROM terms WHERE term IN (''word1'', ''word2'', ''word3'')


Primero, para obtener la identificación recién insertada, puede hacer algo como:

SELECT LAST_INSERT_ID() ;

Cuidado, esto funcionará solo después de su última consulta INSERT y devolverá la primera identificación solo si tiene una inserción múltiple.

Entonces, con la opción IGNORE , no creo que sea posible obtener las líneas que no fueron insertadas. Cuando haces un INSERT IGNORE , le dices a MySQL que ignore las líneas que tendrían que crear una entrada duplicada.

Si no coloca esta opción, el INSERT se detendrá y tendrá la línea afectada por la duplicación.