gpt4 book ai didi

mysql - 选择变量中引用的列

转载 作者:行者123 更新时间:2023-11-29 13:53:29 25 4
gpt4 key购买 nike

我目前正在开发一个 MySQL 触发器(这很重要,因为这排除了 PREPARE/EXECUTE 组合)来获取 Pokémon 的类型并查找其与另一个给定类型的亲和性。这是我正在使用的触发器的片段:

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]。这样的事情存在吗?

最佳答案

我认为最接近的是一个巨大的案例陈述:

select (case when @t1 = 'col1' then col1
when @t1 = 'col2' then col2
. . .
end
) . . .

需要注意的是,这会将所有列转换为相同类型。

关于mysql - 选择变量中引用的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com