如何在 mysql 存储过程中使用 case-when 语句?
我想使用 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 语法是正确的。
请帮忙。
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
//
However i get a 1064 error on enter after //. I have checked the mysql documentation i think the case syntax is correct.
Help please.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
大小写必须至少匹配给定的语句之一,否则您将收到此错误。为了避免错误,请在其中包含 else。
the case must match at least one of the given statements, otherwise you will get this error. To avoid the error include an else in it.
在 mysql 存储过程中使用 case-when 语句的最佳方法是:
The best way To use a case-when statement in a mysql stored procedure is: