我们经常会遇到需要将SQL查询结果导出到文件,以便后续的传输或数据分析的场景。为了满足这个需求,MySQL的select语句提供了into子句可以将的查询结果直接导出到文本文件。本文就MySQL中select…into的用法进行演示。
一、select…into语句简介
select…into语句不仅仅能够将查询结果导出到csv文件,实际上它有3种用法:
- select … into @var_list from …. 将查询结果写入到一组变量
- select … into outfile from …. 将数据写入操作系统文件,可以自定义数据格式(分隔符、包裹符、转义符、换行符等)。
- select … into dumpfile from …. 将单一行写入文件,没有任何格式化
1.1 基本语法
根据官方文档,into子句可以出现在以下3个位置。虽然3个位置都符合语法,但select语句中至多只能有1个into语句(位置三选一):
- 查询字段之后,from子句前
- 锁定子句前(未来版本即将废弃)
- 语句的最后
这里推荐将into子句放在位置3,即语句的末尾,这样相对普通的select语句更为接近,更容易理解,后面的示例也将采用这种写法。
二、用法示例
下面演示into子句三种用法。
2.1 将查询结果保存到变量
into子句的一个常用场景就是将查询结果暂时保存到变量中,以便后续查询或使用,唯二要注意的点是变量的数量要和返回列数量匹配,并且最多只能返回一行数据。
以示例数据库employees中的employees表为例,查询3个结果,分别保存到3个变量中:
select emp_no,first_name,hire_date from employees limit