日期:2014-05-16  浏览次数:20784 次

MySQL源码学习: concat + outfile的bug 原因分析

项目中碰到一个bug,需要将MySQL表中的数据导出,字段中间用逗号隔开。

?

1、复现

??? 步骤:

??? 版本 5.1.48

???? a) 准备数据

CREATE TABLE `test` (

?? `id` int(11) DEFAULT NULL,

???? `data` char(10) DEFAULT NULL

???? ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

insert into tad2 values (1,'\\');

?

b) select concat(id, data) from test into outfile ‘/tmp/a’;

现象:

在生成的/tmp/a中,发现字乱码了,实际上是的第二个字节前面多了个 ‘\’。?

?

2、相关现象