我正在编写一个查询,以从具有 3 列的表"tbl_meta"中获取结果 同上,attr_name,attr_value。
表结构类似于第二列是属性名称,第三列是其值
,如下所示ID attr_name attr_value
1 name abc
2 address aaa
3 age 25
因此,当我使用"从 ID = 10 的tbl_meta中选择 *"时,我得到的结果如上所示,但我需要在一行中具有如下列的结果:
col1 col2 col3 col4 col5 col6
name abc address aaa age 25
如何使用 MySQL 执行此操作?
注意
我已经尝试了@ MySQL - 行到列和MySQL将行转换为动态列数的解决方案,但这不是我所期望的。当我尝试喜欢
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
从上表。
你可以使用类似的东西;
SELECT *, (IF ID=10) AS new_column FROM tbl_meta;