复杂查询的mysql转储

时间:2011-02-22 03:14:29

标签: mysql mysqldump

这与另一个问题(http://stackoverflow.com/questions/935556/mysql-dump-by-query)相似,但我希望不同。

我想从db表中导出特定项目,以便我可以备份它以便将来恢复。

我已经在另一张桌子上使用过这样的东西......

mysqldump --user="user" --password="password" --opt -w"id=1" databasebname tablename

但现在我需要更复杂的东西。

我需要使用以下查询来生成导出数据...

SELECT tbl2.*
FROM tbl1, tbl2
WHERE tbl2.parent = tbl1.child
AND tbl1.id = 1

我可以使用mysqldump吗?

或者我需要考虑不同的方法吗?

(如果有帮助,这一切都是在bash脚本中完成的)

2 个答案:

答案 0 :(得分:2)

我认为这将实现您的目标:

SELECT tbl2.*
FROM tbl1, tbl2
WHERE tbl2.parent = tbl1.child
AND tbl1.id = 1
INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'

这会将您的数据保存为CSV文件。您还可以保存为其他格式。我从here

回来找到了一个关于这个主题的有用教程

答案 1 :(得分:1)

您可以正常执行select语句,然后添加到结尾

INTO OUTPUT FILE'path / to / file'

该文件稍后可以与LOAD DATA命令一起用作备份。

当然,如果是我,我会感觉更好,只是倾倒整张桌子。