mysql -u 用户名 -p -e "SELECT * FROM 表名" -o 文件名
其中-u和-p选项分别表示输入数据库的用户名和密码,-e选项表示执行的SQL语句,-o选项表示将结果输出到文件中。请注意,文件名必须以.log或.txt结尾。
例如,执行如下命令:
mysql -u root -p -e "SELECT * FROM employees WHERE age >30" -o result.log
这将会将年龄大于30岁的员工信息保存到result.log文件中,文件的格式如下:
+----+--------+--------+-----+ | id | name | gender | age | +----+--------+--------+-----+ | 2 | John | M | 34 | | 3 | Lily | F | 31 | | 4 | Michael | M | 32 | +----+--------+--------+-----+
可以看到,文件的格式与在终端中的显示格式基本相同,只不过用“+”和“-”字符代替了表格的边框。
如果希望将结果保存为CSV格式,可以使用FIELDS选项。其语法如下:
mysql -u 用户名 -p -e "SELECT * FROM 表名" -o 文件名 --fields-terminated-by=',' --fields-enclosed-by='"'
其中,–fields-terminated-by选项表示字段的分隔符,该例中使用了逗号。–fields-enclosed-by选项表示字段的包围符号,该例中使用了双引号。执行该命令后,结果将保存为如下的CSV格式:
id,name,gender,age "2","John","M","34" "3","Lily","F","31" "4","Michael","M","32"
需要注意的是,使用FIELDS选项后,结果中的值将会被包围符号包围,需要在程序中处理。