declare prioritaC INT default 1;
select
case
when (b.zraneni = 0 and a.center_id is not null) then (
a.center_id
) else (
select hokejista_id
from nahradnik
where nahradnikTyp_id = 3 and tym_id = 1 and priorita = prioritaC
set prioritaC = prioritaC + 1;
)
end as center_id_real
from oslabeni45 a
left join hokejista b on (a.center_id = b.id)
为什么在声明时set prioritaC = prioritaC + 1
不可能?如何在select中增加变量?
答案 0 :(得分:0)
其他评论者的观点是,MySQL中有 TWO 单独的CASE cobstructs。一个是在过程代码中使用的case语句,另一个是在SELECT语句或子句中使用的函数构造。
在此示例中,您有一个包含CASE构造的SELECT语句。结果compronent必须是表达式。你不能在这里发表声明。
您需要移动SELECT之外的任何语句。