首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程中的case语句

问存储过程中的case语句
EN

Stack Overflow用户
提问于 2012-07-14 10:53:29
回答 1查看 2.6K关注 0票数 1

我有这个存储过程,它可以工作

代码语言:javascript
复制
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;

但是,如果我从这个过程中删除这段代码:

代码语言:javascript
复制
ELSE 
    INSERT INTO mytable (log) VALUES('no');

mysqli_error()返回此错误:“CaseNotforCase语句”。

有人知道为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-14 12:16:49

来自MySQL案例语法

如果没有任何when_value或search_condition与测试的值匹配,而且CASE语句不包含其他子句,则无法找到Case语句错误结果的大小写。

你必须有所有的选择。

MySQL手册是一个很好的文档。一定要去看看!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11483167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档