我尝试了以下查询:
INSERT INTO `surfed_site` (user, site)
VALUES ('123', '456')
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
但我一直收到MySQL错误:
surfed_site
WHERE site = 456)”附近使用正确的语法我不知道我做错了什么,有人能指导我吗?
答案 0 :(得分:0)
INSERT
statements support two1 syntaxes: one that uses VALUES
, and one that uses a query.您无法将它们组合在一起,只有查询语法支持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)
SET
。如果您只插入一条记录,则此记录在功能上等同于VALUES
,但可以说更具可读性。