Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL如果存在,请插入或执行其他操作_Mysql_Insert_Conditional - Fatal编程技术网

MySQL如果存在,请插入或执行其他操作

MySQL如果存在,请插入或执行其他操作,mysql,insert,conditional,Mysql,Insert,Conditional,我很难将一个条件语句放入MySQL。我一直在尝试创建一个查询,该查询将遍历标题为“电子邮件”的所有列,如果它存在,我希望执行以下操作: 如果存在电子邮件,我希望它获取列correct的现有值,并向其中添加php变量$correct。但是如果一封电子邮件不存在,那么我希望它在email列中添加一个新记录,其值为$email,在correct列中添加$correct。任何帮助都将不胜感激。 以下是我所拥有但不起作用的东西: IF (SELECT * FROM facebookqs WHERE em

我很难将一个条件语句放入MySQL。我一直在尝试创建一个查询,该查询将遍历标题为“电子邮件”的所有列,如果它存在,我希望执行以下操作: 如果存在电子邮件,我希望它获取列correct的现有值,并向其中添加php变量$correct。但是如果一封电子邮件不存在,那么我希望它在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')
IF中缺少EXISTS语句和THEN和END IF


是否只需要选择电子邮件列?或者您是否有多个包含电子邮件地址的列?如果您有多个包含电子邮件的列,那么您需要说明col1Email='$email'或col2Email='$email'的位置。。。等等。要获得行数,请尝试 从facebookqs中选择COUNT*,其中col1Email='$email'或col2Email='$email'

假设电子邮件有唯一的约束,您应该使用

另请参阅我对另一个堆栈溢出问题的回答:

使用此处解释的替换方法:从他们的示例:

REPLACE INTO pet (id, type, name) VALUES(1, 'Dog', 'Pluto');
哪一个给出了你的例子还没有测试过呢

REPLACE INTO facebookqs (email, correct) VALUES ('$email', '$correct');

你可以看看“替换为”功能吗?谢谢,这看起来更像我想要做的,但我仍然得到一个sql语法错误=/它说:您的sql语法有一个错误;检查与您的MySQL服务器版本相对应的手册,了解要使用的正确语法,例如“IF EXISTSSELECT*FROM facebookqs WHERE email='test',然后在第1行更新faceb',如果您注意到我无意中删除了UPDATE语句中WHERE子句和email columnname之间的空格。如果你逐字复制我的代码,这可能是你的问题。是的,我注意到,仍然不起作用。似乎一旦exist部分出现,我就以错误开始。@Trey您是否使用这个IF语句来代替mysql的存储过程?我也犯了同样的错误,并且出现了语法错误。必须创建一个存储过程,其中包含此IF块。看见
REPLACE INTO pet (id, type, name) VALUES(1, 'Dog', 'Pluto');
REPLACE INTO facebookqs (email, correct) VALUES ('$email', '$correct');