1

私は次のクエリを試しました:

INSERT INTO `surfed_site` (user, site)
VALUES ('123', '456')
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)

しかし、MySQLエラーが発生し続けます:

1064-SQL構文にエラーがあります。3行目の「 WHERENOTEXISTS(SELECT site FROM surfed_siteWHERE site = 456)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

私は自分が間違っていることの手がかりがありません、誰かが私を導くことができますか?

4

1 に答える 1

1

INSERTステートメントは 2 つの1構文をサポートします。1 つは を使用しVALUES、もう 1 つはクエリを使用します。それらを組み合わせることはできず、クエリ構文のみが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)

  1. 実際には3 つの構文があります。も使用できますSET。レコードを 1 つだけ挿入する場合、これは と機能的に同等ですVALUESが、間違いなくより読みやすくなります。
于 2012-11-19T23:02:22.150 に答える