2015-02-10 96 views
1

我试图运行一个SQL查询,但有些东西已经搞砸了,我无法得到下面的查询来检查数据是否存在或不在指定的表中。无法执行“IF EXISTS”查询

我的代码是:

IF EXISTS(SELECT brth_day FROM sms.birthdaycheck WHERE brth_day = '2015-02-10') 
THEN 
    BEGIN 
    UPDATE sms.birthdaycheck SET cnt = 1 WHERE brth_day = '2015-02-10' 
    END 
ELSE 
    BEGIN 
    INSERT INTO sms.birthdaycheck(cnt,brth_day) VALUES (1,'2015-02-10') 
    END 
END IF; 
+0

GETTTING 1064错误 – 2015-02-10 06:22:11

+2

不要添加注释,编辑问题。你的代码不是PHP。使用正确的标签。 – 2015-02-10 06:34:44

+0

你正在使用什么'数据库引擎? – 2015-02-10 06:35:38

回答

0

编辑溶液:

delimiter ;; 
create procedure XYZ(...parameters...) 
begin 

if exists(
    SELECT brth_day FROM sms.birthdaycheck WHERE brth_day = '2015- 
    02-10') 
then 
    UPDATE sms.birthdaycheck SET cnt = 1 WHERE brth_day = '2015-02-10'; 
else 
    INSERT INTO sms.birthdaycheck(cnt,brth_day) VALUES (1,'2015-02-10'); 
    end if; 

end;; 
+0

我添加了分号更新后插入但同样的错误 – 2015-02-10 06:51:07

+0

请通过此:http://stackoverflow.com/questions/12334026/mysql-stored-procedure-syntax-if-else – 2015-02-10 06:59:27

+0

不能在mysql中工作 – 2015-02-10 07:03:26

-2

在MySQL,如果函数或存储过程中所使用的控制块必须的。 所以你需要重写你的查询: