我有一个包含a、b、c、d列的表myTable
。
SELECT a, b FROM myTable where c in (...)
然后丢弃结果。我将这个查询保存在一个query.sql文件中。如何在我的文件中使用mysqldump
来生成这些结果?我只看到过直接在终端中编写查询的示例,而不是使用文件。
发布于 2017-02-28 02:30:46
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
文件中。
发布于 2017-02-28 02:21:57
您可以使用此函数INTO OUTFILE
SELECT a, b FROM myTable where c in (...)
INTO OUTFILE '/tmp/orders.txt'
发布于 2017-02-28 02:31:35
你可以使用mysql客户端...
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
https://stackoverflow.com/questions/42498914
复制相似问题