我有一个表myTable
,其中包含a,b,c,d列。我想运行一个查询
SELECT a, b FROM myTable where c in (...)
并转储结果。我将此查询保存在query.sql文件中。
如何在文件中使用mysqldump
来生成这些结果?我只看过你在终端直接写查询的例子,而不是文件。
答案 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