SQL插入查询条件不存在


sql insert query with condition - not exist

我试图将数据添加到表的条件-如果数据已经存在-不添加它。我不想用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 ' = .'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