我目前正在研究一个 MySQL触发器(这很重要,因为这排除了PREPARE/EXECUTE
组合),它获取神奇宝贝的类型并查找它与另一个给定类型的亲和力。这是我正在使用的触发器的片段:
select `type1`,`type2` into @t1,@t2
from `data_pokemon` where `formeid`=new.`formeid`;
set @t3 = 'electric'; -- actually obtained from another select query
set @q = concat(
'select `',@t1,'`',
if(@t2 is null,'/2',concat('*`',@t2,'`/4')),
' into @aff from `data_types` where `attack`=?'
);
prepare tmp from @q;
execute tmp using @t3;
deallocate prepare tmp;
现在,正如我所提到的,这是一个触发器。因此,上面的代码将不起作用。
我真正可以做的是选择一行,然后将其视为某种关联数组,这样我就可以访问@typerow[@t1]
. 这样的事情存在吗?