如何在MySQL存储过程中使用case-when语句? [英] How to use a case-when statement in a mysql stored procedure?
本文介绍了如何在MySQL存储过程中使用case-when语句?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用request_time参数自动设置session_id,所以我选择了一个包含case语句的mysql存储过程.
I want to set the session_id automatically using the request_time parameter so i opted for a mysql stored procedure that contains a case statement.Here goes.
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文档,认为大小写正确.
However i get a 1064 error on enter after //. I have checked the mysql documentation i think the case syntax is correct.
请帮助.
推荐答案
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存储过程中使用case-when语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文