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.

student2792
  • 141
  • 1
  • 2
  • 8
  • 3
    Possible duplicate of http://stackoverflow.com/questions/21253704/how-to-save-mysql-query-output-to-excel-or-txt-file – Krishnadas PC Apr 02 '16 at 02:27

3 Answers3

16

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

Community
  • 1
  • 1
fdglefevre
  • 672
  • 4
  • 15
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.

student2792
  • 141
  • 1
  • 2
  • 8
  • 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... :) – fdglefevre Apr 02 '16 at 23:10
1
mysql -u root -p -e"`cat /path/to/file.sql`" > result.txt
Rjazhenka
  • 1,278
  • 1
  • 10
  • 5