我有一个看起来像这样的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
我需要用什么来制定像这样的查询?
答案 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))
..就像这样。