首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >来自查询文件的Mysqldump

来自查询文件的Mysqldump
EN

Stack Overflow用户
提问于 2017-02-28 10:08:44
回答 3查看 931关注 0票数 2

我有一个包含a、b、c、d列的表myTable

代码语言:javascript
代码运行次数:0
运行
复制
SELECT a, b FROM myTable where c in (...)

然后丢弃结果。我将这个查询保存在一个query.sql文件中。如何在我的文件中使用mysqldump来生成这些结果?我只看到过直接在终端中编写查询的示例,而不是使用文件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-28 10:30:46

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

代码语言:javascript
代码运行次数:0
运行
复制
mysqldump --where 'c in (...)' MyDatabase MyTable > dump.sql

但是您将获得表中的所有列,而不仅仅是a、b。

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

代码语言:javascript
代码运行次数:0
运行
复制
mysql -e 'select a,b from MyTable where c in (...)' MyDatabase > dump.csv

我省略了其他选项,如--host--user--password,因为我更喜欢将它们保留在~/.my.cnf文件中。

票数 1
EN

Stack Overflow用户

发布于 2017-02-28 10:21:57

您可以使用此函数INTO OUTFILE

代码语言:javascript
代码运行次数:0
运行
复制
SELECT a, b FROM myTable where c in (...)
INTO OUTFILE '/tmp/orders.txt'
票数 0
EN

Stack Overflow用户

发布于 2017-02-28 10:31:35

你可以使用mysql客户端...

代码语言:javascript
代码运行次数:0
运行
复制
mysql -e "SELECT a, b FROM myTable where c in (...)" -h[hostname] -u[username] -p[password] [dbname]

如果您希望将其重定向到某个文件,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
mysql -e "SELECT a, b FROM myTable where c in (...)" -h[hostname] -u[username] -p[password] [dbname] > mydumpfile.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42498914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档