在一行mysql中将多个列作为多个列进行检索

时间:2017-10-31 06:34:53

标签: mysql pivot

我正在编写一个查询来获取表格的结果" 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 ColumnsMySQL 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

从上表。

1 个答案:

答案 0 :(得分:0)

您可以使用类似的内容

SELECT *, (IF ID=10) AS new_column FROM tbl_meta;