2015-11-03 18 views
0

使用MySQL,我可以運行下面的查詢查詢組,然後導出多行作爲單列

SELECT `meta_value` 
FROM wordpress.wp_postmeta 
WHERE post_id 
IN (SELECT post_id FROM wordpress.wp_postmeta WHERE meta_value = "Tuesday" AND meta_key = "_field_93") 
INTO OUTFILE '/tmp/Tuesday.csv' 
FIELDS TERMINATED BY ',' ESCAPED BY ',' 

我目前得到其中每行中的數據當前級聯下來&由post_id分組如下例如:

POST_ID = 1112345(實施例不是在CSV文件)

,21 
,Tuesday 
,John Smith 
,abc 123 

POST_ID = 1112346(實施例不是在CSV文件)

,qrz22 
,Tuesday 
,Bob Godfrey 
,ABC 229986 

我需要做的是讓每個post_id是一條線,所有的行都將CSV跨線分開。例如:

POST_ID = 1112345(例如不在CSV文件)

,21 ,Tuesday ,John Smith ,abc 123 

POST_ID = 1112346(例如不在CSV文件)

,qrz22 ,Tuesday ,Bob Godfrey ,ABC 229986 

我相信答案是盯着我在面對,但我不是SQL大師,我不知道我要去哪裏錯了。 我查看了group_concat命令,但每次嘗試將其放入我的查詢中時,我都會收到錯誤消息。

如果我的請求沒有任何意義,我會非常感激任何人都可以給我的幫助,再次我不是SQL大師。

+0

您的值總是會變成相同的4個meta_key值嗎? – JRD

+0

是的,meta_key值將始終相同 –

回答

0

如何枚舉字段值,否則稱爲數據透視表。

SELECT max(if(meta_key,'...',meta_value,null) as field_one, 
     max(if(meta_key,'_field_93',meta_value,null) as field_two, 
     max(if(meta_key,'...',meta_value,null) as field_three, 
     max(if(meta_key,'...',meta_value,null) as field_four 
FROM wordpress.wp_postmeta 
WHERE post_id 
IN (SELECT post_id 
    FROM wordpress.wp_postmeta 
    WHERE meta_value = "Tuesday" 
    AND meta_key = "_field_93") 
GROUP BY post_id 
INTO OUTFILE '/tmp/Tuesday.csv' 
FIELDS TERMINATED BY ',' ESCAPED BY ','; 
相關問題