Mysql 存储过程和计数IF语句出现问题

Mysql 存储过程和计数IF语句出现问题,mysql,stored-procedures,if-statement,count,Mysql,Stored Procedures,If Statement,Count,因此,我需要创建一个名为AddComment的存储过程,该过程将向我的Comments表中添加一条注释,如果该注释者名称不存在,则向Commenters表中添加一个条目 DELIMITER // CREATE PROCEDURE AddComment(Name VARCHAR(60),

因此,我需要创建一个名为AddComment的存储过程,该过程将向我的Comments表中添加一条注释,如果该注释者名称不存在,则向Commenters表中添加一个条目

 DELIMITER //                                                                                                        
 CREATE PROCEDURE AddComment(Name VARCHAR(60), Title VARCHAR(60), Comments VARCHAR(60))                              

 BEGIN                                                                                                               

 INSERT INTO Comments(Name, Title, Comments)                                                                         
 VALUES (Name, Title, Comments);                                                                                     

 DECLARE name_count INT;

 SELECT COUNT(Name) INTO name_count                                                                                  
 FROM Commenters                                                                                                     
 WHERE Name = Name;                                                                                                  
 IF name_count = 0                                                                                                   
 THEN INSERT INTO Commenters(Name)                                                                                   
 VAlUES(Name);                                                                                                       
 ELSEIF name_count = 1                                                                                               
 THEN INSERT IGNORE Commenters(Name)                                                                                 
 VALUES(Name);                                                                                                       
 END IF;                                                                                                             
 END;                                                                                                                
 //          
错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本相对应的手册 r使用near'DECLARE name\u count INT的正确语法
选择COUNT(Name)进入Name\u COUNT
来自评论者


^是我犯的错误。我一直在调整我的代码,试图找出它,但什么都不起作用。

你需要一个光标来使用这样的语法,但你可以使用SET:

SET name_count = (SELECT COUNT(*) ...);
或者更好的是,因为您实际上没有使用该值,所以完全消除该变量:

IF NOT EXISTS (SELECT * FROM ...) THEN