来自查询文件的Mysqldump

时间:2017-02-28 02:08:44

标签: mysql

我有一个表myTable,其中包含a,b,c,d列。我想运行一个查询

SELECT a, b FROM myTable where c in (...)

并转储结果。我将此查询保存在query.sql文件中。 如何在文件中使用mysqldump来生成这些结果?我只看过你在终端直接写查询的例子,而不是文件。

3 个答案:

答案 0 :(得分:1)

Mysqldump不运行自定义查询,它只使用可选的where子句运行等效的select * from MyTable。所以你可以这样做:

mysqldump --where 'c in (...)' MyDatabase MyTable > dump.sql

但是你得到了你桌子的所有栏目,而不仅仅是a,b。

您可以使用mysql客户端来运行自定义查询,但它会输出CSV文本,而不是像mysqldump那样的SQL。

mysql -e 'select a,b from MyTable where c in (...)' MyDatabase > dump.csv

我省略了--host--user--password等其他选项,因为我更愿意将这些选项保留在~/.my.cnf文件中。

答案 1 :(得分:0)

您可以使用此功能INTO OUTFILE

SELECT a, b FROM myTable where c in (...)
INTO OUTFILE '/tmp/orders.txt'

答案 2 :(得分:0)

你可以使用mysql cli ...

mysql -e "SELECT a, b FROM myTable where c in (...)" -h[hostname] -u[username] -p[password] [dbname]

如果您想要将其重定向到文件:

mysql -e "SELECT a, b FROM myTable where c in (...)" -h[hostname] -u[username] -p[password] [dbname] > mydumpfile.txt