MySQL说:错误#1064 - 在sql中使用IF条件

时间:2015-02-26 07:50:39

标签: mysql sql database

我的sql命令中出现了这个错误消息。我无法弄清楚原因。请帮帮我。

if ( SELECT * FROM `teams` WHERE `client_id`='3' and `member_id`='6' and `current`='1' ) then
begin 
UPDATE `teams` SET `current`='0' WHERE `client_id`='3' and `member_id`='6' and `current`='1'
end ;
else
begin
INSERT INTO `teams`(`client_id`, `member_id`) VALUES ('3','33')
end;
end if; 

此处我尝试更新列current,如果设置为1,则插入新记录。

I need to use this sql command in my php file when a form is submitted.

以下是错误消息:

#1064 - You have an error in your SQL syntax;

2 个答案:

答案 0 :(得分:0)

这不是mysql中的有效语句,有效语法如下所示。此外,在存储过程,函数或触发器中允许使用if-else。

if ( SELECT * FROM `teams` WHERE `client_id`='3' and `member_id`='6' and `current`='1' ) then
 begin 
   UPDATE `teams` SET `current`='0' WHERE `client_id`='3' and `member_id`='6' and `current`='1'
 end ;
else
 begin
    INSERT INTO `teams`(`client_id`, `member_id`) VALUES ('3','33')
 end;
end if; 

答案 1 :(得分:0)

可以使用一个INSERT...ON DUPLICATE KEY UPDATE...语句完成整套语句。