INSERT
instrukcje obsługują dwie składnie:jedną, która używa VALUES
i taki, który używa zapytania.
Nie można ich łączyć, a tylko składnia zapytania obsługuje WHERE
klauzule. A więc:
INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- Właściwie trzy składnie; możesz również użyć
SET
. Jeśli wstawiasz tylko jeden rekord, ten jest funkcjonalnie równoważny zVALUES
, ale prawdopodobnie bardziej czytelne.