我正在尝试将数据添加到具有条件的表中 - 如果数据已经存在 - 请不要添加它。我不想使用INSERT IGNORE INTO
SQL:
INSERT INTO `alerts` (type, userID, fromID, refID, createDate)
VALUES ('commentReply', 2, 1, 452, 1443048940)
WHERE NOT EXISTS (SELECT *
FROM alerts
WHERE `type` = 'commentReply'
AND userID = 2
AND viewed = 0
)
错误:
#1064 - 您的SQL语法出错; 检查与您的MySQL服务器版本对应的手册,以便使用正确的语法 'WHERE NOT EXISTS附近(SELECT id FROM alerts WHERE`type` = 第3行的'commentR'
有谁知道我的陈述有什么问题?
答案 0 :(得分:1)
让我回答你的问题
如果您使用WHERE NOT EXIST,则需要按以下方式编写代码:
INSERT INTO alerts (type,id,....)
SELECT 'COL1 VALUE', 'COL2 VALUE'
WHERE NOT EXISTS (SELECT * FROM TABLE_1 WHERE COL1='COL1 VALUE');
或者你可以用另一种方式来做。
IF (SELECT COUNT(*) FROM alerts WHERE yourcondition > 0)
UPDATE alerts SET c1=(SELECT id FROM beta WHERE yourcondition)
ELSE
BEGIN
INSERT INTO alerts (names..) VALUES (values...)
END