11

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.

1

3 Answers 3

18

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

Sign up to request clarification or add additional context in comments.

Comments

1

@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.

1 Comment

My answer works I tested it. The problem with your solution is that you need to modify the file content each time you want to change the results file. It's not a problem of course if you never reuse it... :)
1
mysql -u root -p -e"`cat /path/to/file.sql`" > result.txt

1 Comment

Please add some explanation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.