2013-04-06 81 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)。

相关问题