MYSQL存储过程If语句问题

MYSQL存储过程If语句问题,mysql,stored-procedures,Mysql,Stored Procedures,我正在freebsd上使用Mysql 5.1.28-rc。我刚刚决定在MYSQL中使用存储过程,并创建了一个测试过程,如下所示: 此过程在没有IF语句的情况下运行良好,但使用它提供的IF语句, 错误1064 42000:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解使用near'的正确语法; 结束' 我如何解决这个问题?问题出在哪里?ENDIF在MySQL中需要一个空间,不是吗?i、 e.END IF只需要在END IF中留出空间,如果在存储过程中不应该使用count

我正在freebsd上使用Mysql 5.1.28-rc。我刚刚决定在MYSQL中使用存储过程,并创建了一个测试过程,如下所示:

此过程在没有IF语句的情况下运行良好,但使用它提供的IF语句, 错误1064 42000:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解使用near'的正确语法; 结束'


我如何解决这个问题?问题出在哪里?

ENDIF在MySQL中需要一个空间,不是吗?i、 e.END IF

只需要在END IF中留出空间,如果在存储过程中

不应该使用count之类的变量。因此,请找到解决方案-

DELIMITER $$ 
DROP PROCEDURE IF EXISTS test $$
CREATE PROCEDURE test(IN test VARCHAR(22) )
BEGIN
 DECLARE var_count INT;
 SET var_count = (SELECT COUNT(*) FROM test WHERE test.textfield = test);
 IF var_count = 0 THEN
  SET var_count = 1;
 ELSE SET var_count = 2;
 END IF;
 SELECT var_count;
END $$

天哪,我怎么会错过这一点:别担心,几乎不可能在你自己的代码中发现拼写错误。让我们来听听结对编程,或者,如果你做不到,那么…:你能证明你的回答正确吗?例如,与文件的链接?理由?蒙纳只是抄了上面的答案
DELIMITER $$ 
DROP PROCEDURE IF EXISTS test $$
CREATE PROCEDURE test(IN test VARCHAR(22) )
BEGIN
 DECLARE var_count INT;
 SET var_count = (SELECT COUNT(*) FROM test WHERE test.textfield = test);
 IF var_count = 0 THEN
  SET var_count = 1;
 ELSE SET var_count = 2;
 END IF;
 SELECT var_count;
END $$