2017-02-28 32 views
1

我有一個表myTable列a,b,c,d。我想運行查詢來自查詢文件的Mysqldump

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

並轉儲結果。我把這個查詢保存在一個文件query.sql中。 如何使用我的文件mysqldump來生成這些結果?我只看到了直接在終端中寫入查詢的例子,而不是使用文件。

+0

在Linux或Windows是嗎? – FreedomPride

+0

@FreedomPride linux,centos – Andrew

回答

1

mysqldump的不運行自定義查詢,它只運行的select * from MyTable可選相當於where子句。所以你可以這樣做:

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文件。

0

您可以使用此功能INTO OUTFILE

SELECT a, b FROM myTable where c in (...) 
INTO OUTFILE '/tmp/orders.txt' 
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