2014-05-15 75 views
0

我已經寫了這個簡單的查詢,它將所有的數據從表格中提取出來,轉換成CSV文件。MySQL INTO OUTFILE查詢問題

SELECT Group_concat(Concat(column_name)) 
FROM information_schema.columns 
WHERE table_name = 'subject_assignment' 
     AND table_schema = 'newschema2' 
UNION ALL 
SELECT (SELECT Group_concat('`', column_name, '`') 
     FROM information_schema.columns 
     WHERE table_name = 'subject_assignment' 
       AND table_schema = 'newschema2') 
FROM subject_assignment 
INTO OUTFILE 'D:\\export\\asd.csv' 

現在,第一位工作很好,但我有第二部分的問題。 而不是從列列表中指定的列中提取數據,它只是一遍又一遍地顯示所有列名稱。

您能否提出我在做什麼錯誤?

謝謝。

回答

0

在您的第二個SELECT中,您不要從subject_assignment中選擇任何列。相反,您要選擇由連接的列名構成的單個字符串值。並且您選擇的次數爲subject_assignment的行數。

UPDATE:

如果要動態地創建列名,然後從中選擇數據,請參閱本:https://stackoverflow.com/a/17573774/925196

+0

如何動態指定列名呢? 我需要將大約80個表格從CSV文件中提取信息,我只想找到一種方法在第二個選擇中動態指定列名稱。 –

+0

@ user2110925,我已經爲你更新了我的答案。 –

+0

感謝Grzegorz。這就是訣竅。 –