MySQL选择列名和值作为字段

时间:2013-06-04 09:03:14

标签: mysql sql

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

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

我希望能够查询获取多行,每列一行。 E.g:

SELECT column_name as column, column_value as value FROM my_table; 

哪会给我:

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

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

2 个答案:

答案 0 :(得分:2)

您必须先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

答案 1 :(得分:0)

不完全确定你的意思。但传统上这是以这种方式完成的

SELECT * FROM my_table;

你会得到这样的数组

array(0=>array('PO'=>2,'DAP'=>34,'MEDIA'=54), 1=>array('PO'=>6, 'DAP'=>53, 'MEDIA'=> 23))

..就像这样。