MySQL 如果存在则插入或者做其他事情

Tre*_*rey 5 mysql insert conditional-statements

我在将条件放入 MySQL 时遇到一些困难。我一直在尝试创建一个查询,该查询将遍历所有标题为电子邮件的列,如果它存在,我想做这样的事情:如果电子邮件存在,我希望它正确获取该列的现有值并添加php 变量 $ 更正它。但是,如果电子邮件不存在,那么我希望它添加一条新记录,其中值 $email 到 email 列中,并将 $ Correct 值添加到 Correct 列中。任何帮助将不胜感激。
这是我所拥有的但不起作用的:

IF  (SELECT * FROM facebookqs WHERE email = '$email' > 0)
UPDATE facebookqs SET correct = correct + '$correct' where email ='$email' 
Else
Insert into facebookqs (email, correct) VALUES ('$email', '$correct')
Run Code Online (Sandbox Code Playgroud)

Bil*_*win 4

假设emailUNIQUE约束,您应该使用INSERT ... ON DUPLICATE KEY UPDATE

\n\n
INSERT INTO facebookqs (email, correct) VALUES (\'$email\', \'$correct\')\nON DUPLICATE KEY UPDATE correct = correct + \'$correct\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

另请参阅我对其他堆栈溢出问题的回答:INSERT IGNORE 与 INSERT \xe2\x80\xa6 ON DUPLICATE KEY UPDATE

\n