我必须从列中获取结果,该名称由另一列中的数据生成。我将通过以下示例进行说明:
数据库中的列名称:
个月| am1 | am2 | am3 | am4 | am5 | am6 | am7 | am8 | am9 | am10 | am11 | am12
我想在查询中从以am
开头的列中获取值+月值
我当前的查询是:
$query = 'select id, iid, contractnumber, concat("am",`months`) as amount from credits where iid > 0';
但是此方法不是返回特定am..
列的值(71),而是返回列名,例如am5
如何直接访问列am5
的值
谢谢您的时间!
答案 0 :(得分:1)
这是一个糟糕的设计,您应该对其进行更改,但是如果您得到的是这样,则可以使用CASE
select id, iid, contractnumber,
case months
when 1 then am1
when 2 then am2
when 3 then am3
when 4 then am4
when 5 then am5
when 6 then am6
when 7 then am7
when 8 then am8
when 9 then am9
when 10 then am10
when 11 then am11
when 12 then am12
end as amount
from credits
where iid > 0