INSERT ステートメントは2つの構文をサポートします。1つはVALUESを使用します 、およびクエリを使用するもの。
それらを組み合わせることはできず、クエリ構文のみがWHEREをサポートします。 条項。だから:
INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- 実際には3つ 構文;
SETを使用することもできます 。 1つのレコードのみを挿入する場合、これは機能的にVALUESと同等です。 、しかし間違いなくもっと読みやすい。