我想使用 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 文档,我认为 case 语法是正确的。
请帮忙。
最佳答案
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 //
关于mysql - 如何在 mysql 存储过程中使用 case-when 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59510106/