2013-04-06 102 views
1

我需要根據另一個表中的列值將錶轉儲爲多個文件。根據不同表中的列將表導出到csv到多個文件

我也想使用mysql命令行,而不是通過任何腳本語言。可能嗎?

如:

表A具有

(ID, Name, Stuff)Name獨特

表B有

(ID, Name, Start, End)

我想傾倒在B,其Name存在於所有的行A,每個基於012自己的文件。

在SQL中,大致是這樣的:

SELECT * 
FROM B 
WHERE Name = 'brad' (exists in A) 
INTO OUTFILE '/home/csv/brad.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

除了存在於A.每名

回答

0

要確保Name存在於表A剛剛加入AB上的名字:

SELECT * 
FROM B 
INNER JOIN A ON B.Name = A.Name 
WHERE Name = 'brad' 

至於變化的OUTFILE名稱,我不認爲有辦法做到這一點t編程/腳本。您可以使用EXECUTE執行MySQL程序;有一個你可以適應的簡單例子here。一般的做法是創建一個不同名稱的遊標,然後掃描它併爲每個名稱構建/執行SQL(包括值爲OUTFILE)。

相關問題