2013-06-18 69 views
1

我已經成功地將我的MySQL表導出到帶有列的csv。我用這傢伙的答案在Include headers when using SELECT INTO OUTFILE?爲MySQL導出到csv添加額外的列?

SELECT 'ColName1', 'ColName2', 'ColName3'

UNION ALL

SELECT ColName1,ColName2,ColName3

FROM YourTable 
INTO OUTFILE '/path/outfile' 

但是,我想要將查詢公式導出爲要添加到csv文件的新列。我嘗試在第二個SELECT聲明後添加一個額外的計算列。 MySQL給了我一個錯誤,說「使用的SELECT語句有不同數量的列」。

例公式:SELECTCAST((ColName1 * ColName2)ASDECIMAL(7,2))ASColNameX。我不確定在我的出口聲明中輸入它的位置。

回答

0

對於UNION工作,您必須具有相同數量的列,並且它們必須是相同的類型。在創建標題行作爲文本時,第二個查詢中的所有列也必須是文本。像這樣:

SELECT 'ColName1', 'ColName2', 'ColName3', 'New Column' 
UNION ALL 
SELECT 
    ColName1 
    ,ColName2 
    ,ColName3 
    ,CAST(CAST((ColName1 * ColName2) AS DEC(5,2)) AS CHAR) 
FROM YourTable 
INTO OUTFILE '/path/outfile' 
+0

如果我想要以精確的精確度(例如3位數,精度2)進行新列值修剪,該怎麼辦?或者我通過Excel修改值(程序我導入csv)? – hk101

+0

我收到了VARCHAR附近的mysql語法錯誤。涉及的列都是十進制的。我通過做CAST((ColName1 * ColName2)AS DEC(5,2))解決了這個問題。 – hk101

+0

進行編輯應該解決您的問題。 –