MySQL查询结果导出到文件的另类方法

MySQL查询结果导出到文件的方法很多人都会,一般大家都会用 “SELECT INTO OUTFIL”将查询结果导出到文件,但是这种MySQL查询结果导出到文件方法不能覆盖或者添加到已经创建的文件。例如:

 
 
 
  1. mysql> select 1 into outfile '/tmp/t1.txt';  
  2. Query OK, 1 row affected (0.00 sec)  
  3. mysql> select 1 into outfile '/tmp/t1.txt';  
  4. ERROR 1086 (HY000): File '/tmp/t1.txt' already exists  

 还可以使用另外一种方法:

 
 
 
  1. mysql> pager cat > /tmp/t1.txt  
  2. PAGER set to 'cat > /tmp/t1.txt'  
  3. mysql> select 1;\! cat /tmp/t1.txt  
  4. 1 row in set (0.00 sec)  
  5. +---+  
  6. | 1 |  
  7. +---+  
  8. | 1 |   
  9. +---+  

这样你能很方便的查询到2条sql的差异:

 
 
 
  1. mysql> pager cat > /tmp/t01.txt  
  2. PAGER set to 'cat > /tmp/t01.txt'  
  3. mysql> select 12345 union select 67890;  
  4. 2 rows in set (0.02 sec)  
  5. mysql> pager cat > /tmp/t02.txt  
  6. PAGER set to 'cat > /tmp/t02.txt'  
  7. mysql> select 12345 union select 67891;  
  8. 2 rows in set (0.00 sec)  
  9. mysql> \! vimdiff -o  /tmp/t0[12].txt  
  10. 2 files to edit  
  11.   +-------+  
  12.   | 12345 |  
  13.   +-------+  
  14.   | 12345 |  
  15.   | 67890 |                                                                                                                   
  16.   +-------+                                                                                                                
  17. /tmp/t01.txt   
  18.   +-------+  
  19.   | 12345 |  
  20.   +-------+  
  21.   | 12345 |  
  22.   | 67891 |                                                                                                                   
  23.   +------+                                                                                                           
  24. /tmp/t02.txt  

 

 

 

 

【编辑推荐】

MySQL查询结果条数编号示例

MySQL查询分页的优化

MySQL查询结果按某值排序

使用函数实现MySQL查询行号

MySQL查询中的非空问题

THE END