student2792
student2792

Reputation: 141

How can I execute an SQL file, and save the results to a txt file in one command?

I am using an Ubuntu terminal. I've found answers about running .sql files, and how to save query results to an external file. How can I do them both at the same time?

I've tried this command: source /path/to/file.sql into outfile /path/to/outfile.txt.

I've tried to add into outfile /path/to/outfile.txt directly into file.sql and running source /path/to/outfile.sql.

I've tried mysql -u <username> -p <database> file.sql > results.txt. If I switch file.sql with something like this -e "select * from myTable", then it works fine.

How can I do this?

EDIT: Here is file.sql

select myID from Players where score > 80;

It's a simple query, but if I can figure this thing out, I can try to do bigger queries.

Upvotes: 11

Views: 25215

Answers (3)

Rjazhenka
Rjazhenka

Reputation: 1468

mysql -u root -p -e"`cat /path/to/file.sql`" > result.txt

Upvotes: 1

student2792
student2792

Reputation: 141

@FLefèvre has a solution but I couldn't get it to work. It just outputted a MySQL help page where it shows the different commands.

Add this to the sql file: .... into outfile '/path/to/outfile.txt'. Single or double quotations on the path. And then in the MySQL shell, just do source /path/to/file.sql.

Upvotes: 1

fdglefevre
fdglefevre

Reputation: 692

Your answer is here: http://dev.mysql.com/doc/refman/5.7/en/mysql.html

You can execute SQL statements in a script file (batch file) like this:

shell> mysql db_name < script.sql > output.tab

Try this: mysql -u username -p database < file.sql > results.txt

Upvotes: 18

Related Questions