sql >> Base de Datos >  >> RDS >> Mysql

Insertar MySQL donde no existe/si no existe

INSERT Las declaraciones admiten dos sintaxis:una que usa VALUES y uno que utiliza una consulta. No puede combinarlos, y solo la sintaxis de consulta admite WHERE cláusulas. Entonces:

INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
  1. En realidad tres sintaxis; también puedes usar SET . Si solo está insertando un registro, este es funcionalmente equivalente a VALUES , pero podría decirse que es más legible.