将多列检索为一行 MySQL 中的多列

  • 本文关键字:一行 MySQL 检索 mysql pivot
  • 更新时间 :
  • 英文 :


我正在编写一个查询,以从具有 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;

最新更新