首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql存储过程中使用case-when语句?

如何在mysql存储过程中使用case-when语句?
EN

Stack Overflow用户
提问于 2011-03-02 21:15:11
回答 2查看 30.4K关注 0票数 4

我想使用request_time参数自动设置session_id,所以我选择了一个包含案例statement.Here so的mysql存储过程。

代码语言:javascript
复制
create procedure upd_userinput(in  request_time timestamp, out user_session_id int) 

begin 

update user_input;

case request_time

when time(request_time) < '9:15:00' && time(request_time) > '8:15:00' 
then set user_session_id = 1; 

when  time(request_time)< '10:15:00' && time(request_time) > '11:15:00' 
then set user_session_id =2; 

end case; 
end
//

然而,在//之后输入时,我得到了一个1064错误。我已经检查了mysql文档,我认为case语法是正确的。

请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-02 21:24:35

代码语言:javascript
复制
delimiter //

create procedure upd_userinput(in request_time TIMESTAMP,out time TIME, out user_session_id INT)     

begin      

set time = time(request_time);    

case  
when time < '09:15:00' && time > '08:15:00' then      
set user_session_id = 1; 

when time < '10:15:00' && time > '11:15:00' then
set user_session_id = 2;  

else set user_session_id =3;

end case;  
end //
票数 8
EN

Stack Overflow用户

发布于 2015-05-12 00:53:47

case必须至少与给定语句中的一个匹配,否则将出现此错误。为了避免错误,请在其中包含一个else。

代码语言:javascript
复制
create procedure upd_userinput(in  request_time timestamp, out user_session_id int) 
begin 
update user_input;
case request_time
when time(request_time) < '9:15:00' && time(request_time) > '8:15:00' then
set user_session_id = 1; 
when  time(request_time)< '10:15:00' && time(request_time) > '11:15:00' then
set user_session_id =2; 
else set user_session_id =0; 
end case; 
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5167985

复制
相关文章

相似问题

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