INSERT le istruzioni supportano due sintassi:una che utilizza VALUES e uno che utilizza una query.
Non puoi combinarli e solo la sintassi della query supporta WHERE clausole. Quindi:
INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- In realtà tre sintassi; puoi anche usare
SET. Se stai inserendo un solo record, questo è funzionalmente equivalente aVALUES, ma probabilmente più leggibile.