2

我有一个看起来像这样的 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

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

4

2 回答 2

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

于 2013-06-04T09:22:06.513 回答
0

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

SELECT * FROM my_table;

你会像这样得到你的数组

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

..像这样。

于 2013-06-04T09:07:47.330 回答