mysql1241什么问题???

BEGIN
DECLARE k INT ;
DECLARE m INT ;
DECLARE n FLOAT ;

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,NOT FOUND,SQLWARNING SET flag=500;

SET @str1='UPDATE excel SET ard = CONCAT(`ard`,",1") WHERE `name` IN ';
SET @str1=CONCAT(@str1,snames);
PREPARE stmt1 FROM @str1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

SET @str2='UPDATE excel SET ard = CONCAT(`ard`,",0") WHERE `name` NOT IN ';
SET @str2=CONCAT(@str2,snames);
PREPARE stmt2 FROM @str2;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;

UPDATE excel SET dates=CONCAT(dates,',',`datess`);

SELECT LENGTH(excel.`ard`)-LENGTH(REPLACE(excel.`ard`,'1','')) INTO k FROM excel ;

SELECT LENGTH(excel.`ard`)-LENGTH(REPLACE(excel.`ard`,',','')) INTO m FROM excel ;

SET n=CONCAT(ROUND(m/(k+1) * 100, 2),'','%')  ;

UPDATE excel SET ardrate=n;

IF flag=500 THEN ROLLBACK;
ELSE SET flag=200;
END IF;

END$$

这个里面有很多中文的引号啊,肯定执行报错的。。。符号一定要用英文符号

错误:1241 SQLSTATE: 21000 (ER_OPERAND_COLUMNS)

消息:操作数应包含%d列。