我有一個表myTable
列a,b,c,d。我想運行查詢來自查詢文件的Mysqldump
SELECT a, b FROM myTable where c in (...)
並轉儲結果。我把這個查詢保存在一個文件query.sql中。 如何使用我的文件mysqldump
來生成這些結果?我只看到了直接在終端中寫入查詢的例子,而不是使用文件。
我有一個表myTable
列a,b,c,d。我想運行查詢來自查詢文件的Mysqldump
SELECT a, b FROM myTable where c in (...)
並轉儲結果。我把這個查詢保存在一個文件query.sql中。 如何使用我的文件mysqldump
來生成這些結果?我只看到了直接在終端中寫入查詢的例子,而不是使用文件。
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
文件。
您可以使用此功能INTO OUTFILE
SELECT a, b FROM myTable where c in (...)
INTO OUTFILE '/tmp/orders.txt'
您可以使用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
在Linux或Windows是嗎? – FreedomPride
@FreedomPride linux,centos – Andrew