小编典典

MySQL选择列名称和值作为字段

sql

我有一个看起来像这样的mysql表:

id | PO | DAP   | MEDIA
---|----|-------|------
1  | 2  | 34    | 64
2  | 6  | 53    | 23

我希望能够查询得到多行,每一列一个。例如:

SELECT column_name as column, column_value as value FROM my_table;

这会给我:

PO=2,DAP=34,MEDIA=54,PO=6,DAP=53,MEDIA=23

我需要用什么来制定这样的查询?


阅读 170

收藏
2021-04-28

共1个答案

小编典典

您必须首先CONCAT将每个指定字段的数据应用于GROUP_CONCAT结果。

询问

SELECT GROUP_CONCAT(temp_col) FROM
(
    SELECT 1 as 'temp_id',
    CONCAT(
      CONCAT('PO=', PO),
      ',',
      CONCAT('DAP=', DAP),
      ',',
      CONCAT('MEDIA=', MEDIA)
    ) AS 'temp_col'
    FROM test
) temp
GROUP BY temp_id


SQLFIDDLE

2021-04-28