使用select里面的更新变量的MySql程序

时间:2012-03-04 15:21:37

标签: mysql variables select set procedure

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中增加变量?

1 个答案:

答案 0 :(得分:0)

其他评论者的观点是,MySQL中有 TWO 单独的CASE cobstructs。一个是在过程代码中使用的case语句,另一个是在SELECT语句或子句中使用的函数构造。

在此示例中,您有一个包含CASE构造的SELECT语句。结果compronent必须是表达式。你不能在这里发表声明。

您需要移动SELECT之外的任何语句。