我有一个简单的过程,我给它一个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/

10-10 22:08