我有这个存储过程,它可以工作
CREATE PROCEDURE myrange()
BEGIN
SET @start = 0;
PREPARE stmt FROM ' SELECT firstname FROM peoples ORDER BY id LIMIT ?,1 INTO @name';
WHILE @start < 5 DO
EXECUTE stmt USING @start;
CASE
WHEN @name = 'Ana'
THEN INSERT INTO mytable (log) VALUES('yes');
ELSE
INSERT INTO mytable (log) VALUES('no');
END CASE;
SET @start = @start + 1;
END WHILE;
END;但是,如果我从这个过程中删除这段代码:
ELSE
INSERT INTO mytable (log) VALUES('no');mysqli_error()返回此错误:“CaseNotforCase语句”。
有人知道为什么?
发布于 2012-07-14 12:16:49
如果没有任何when_value或search_condition与测试的值匹配,而且CASE语句不包含其他子句,则无法找到Case语句错误结果的大小写。
你必须有所有的选择。
MySQL手册是一个很好的文档。一定要去看看!
https://stackoverflow.com/questions/11483167
复制相似问题