我想使用request_time参数自动设置session_id,所以我选择了一个包含案例statement.Here so的mysql存储过程。
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语法是正确的。
请帮帮忙。
发布于 2011-03-02 21:24:35
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 //发布于 2015-05-12 00:53:47
case必须至少与给定语句中的一个匹配,否则将出现此错误。为了避免错误,请在其中包含一个else。
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;
endhttps://stackoverflow.com/questions/5167985
复制相似问题