我正在编写一个查询来获取表格的结果" tbl_meta"有3列作为 ID,attr_name,attr_value。
表结构类似于第二列是属性名称,第三列是其值,如下所示
ID attr_name attr_value
1 name abc
2 address aaa
3 age 25
所以,当我使用"从tbl_meta中选择*,其中ID = 10" ,我得到的结果如上所示,但我需要结果如下一行中的列:
col1 col2 col3 col4 col5 col6
name abc address aaa age 25
我怎么能用mysql做到这一点?
注意
我已经尝试了@ MySQL - Rows to Columns和MySQL pivot row into dynamic number of columns给出的解决方案,但这并不是我所期待的。 当我尝试
时SELECT
case when attr_name = 'name' then attr_value end as name ,
case when attr_name = 'address' then attr_value end as address,
case when attr_name = 'age' then attr_value end as agep,
FROM tbl_meta
where ID = 10
我的输出为:
name address age
abc NULL NULL
NULL aaa NULL
NULL NULL 25
而不是我
name address age
abc aaa 25
从上表。
答案 0 :(得分:0)
您可以使用类似的内容
SELECT *, (IF ID=10) AS new_column FROM tbl_meta;