我试图将数据添加到表的条件-如果数据已经存在-不添加它。我不想用INSERT IGNORE INTO
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 ' = .'commentR'在第3行
让我回答你的问题
如果你使用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