我想使用request_time参数自动设置session_id,所以我选择了一个包含case语句的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文档,我认为大小写语法是正确的。
请帮帮忙。
3条答案
按热度按时间u59ebvdq1#
aor9mmx12#
case必须至少匹配一个给定的语句,否则你会得到这个错误。2为了避免这个错误,在它里面包含一个else。
up9lanfz3#
在mysql存储过程中使用case-when语句的最佳方法是: