我有一个简单的过程,我给它一个int,它返回一个1或0。
所以例如,如果我写:
呼叫myProcedure
()然后我得到1或0
现在我有一个整数列表。我想在此列表中的每个整数上运行该过程。
我写:
select case when `myProcedure`(1315)=1 then 1 else 1315 end;
这不会编译。
我也尝试过:
select case when call `myProcedure`(1315)=1 then 1 else 1315 end;
call case when `myProcedure`(1315)=1 then 1 else 1315 end;
select case when `myProcedure`(1315)=true then 1 else 1315 end;
和其他一些人都失败了。
call `myProcedure`(1315); --returns a 1.
这里有人告诉我,您不能从case语句调用存储过程。那可能是问题所在。因为它在我这样做时有效:
select case when 1>0 then 1 else 0 end;
最佳答案
要在这种情况下使用它,您必须将其定义为存储函数。见http://dev.mysql.com/doc/refman/5.6/en/create-function.html
关于mysql - 在MYSQL中编写Case语句并在when子句中调用过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33903542/