verificar validar usuario solo registro insertar hacer existe ejecutar datos comprobar antes php mysql sql sql-insert

php - validar - Insertar comprobación de consulta si el registro existe. Si no, insértelo



validar si un registro existe en la base de datos (5)

Debería agregar una clave ÚNICA en ip_addr y luego usar INSERT IGNORE .

Tal vez esto ayude si aún no has oído hablar de UNIQUE : http://www.tutorialspoint.com/sql/sql-unique.htm

Esta pregunta ya tiene una respuesta aquí:

Tengo una tabla mysql ip_list ...

+----+---------------+ | id | ip_addr | +----+---------------+ | 1 | 192.168.100.1 | | 2 | 192.168.100.2 | | 3 | 192.168.100.3 | | 4 | 192.168.100.4 | | 5 | 192.168.100.5 | +----+---------------+

Quiero agregar solo los registros que no están en la columna ip_addr . Por ej.

Tengo los siguientes registros para agregar en la tabla ip_addr

192.168.100.6 192.168.100.10 192.168.100.11 192.168.100.1 //already in column 192.168.100.12

No quiero agregar 192.168.100.1 , porque ya está en la columna.

Entonces, ¿es posible que la consulta INSERT primero verifique los registros y luego lo inserte?

Actualmente, estoy haciendo esto con ... primero SELECT los registros, luego los coincido y luego lo INSERT .

pero, quiero hacer con una sola consulta.



Puede utilizar la siguiente consulta. Aquí insertará la dirección_ip cuando no esté presente en su tabla.

INSERT INTO ip_list (ip_addr) SELECT * FROM (SELECT ''192.168.100.1'') AS tmp WHERE NOT EXISTS ( SELECT ip_addr FROM ip_list WHERE ip_addr=''192.168.100.1'' );



si fuera usted, impongo una restricción UNIQUE en la columna,

ALTER TABLE ip_list ADD CONSTRAINT IP_Unique UNIQUE(ip_addr)