MySQL的enclosed-by和escaped-by

        在mysql使用过程中,我往往使用“load data infile”和“select into outfile”这两种功能来快速“搬运”数据。细心的童鞋会发现这两种SQL语句都有:

line terminated by 'string'

fields terminated by 'string'

enclosed by 'char'

escaped by 'char'

 

一,在“load data infile”中:

先看看enclosed-by的作用:

 1,在字段值中存在"enclosed by"字符,并且其前一个字符为"escaped by"字符,则导入mysql后,"escaped by"字符会被去除。

 2,对于文本中被"enclosed by"包裹的字段值,如果值内出现连续两个的"enclosed by"字符,则导入后,会变成一个。

 

再看看escaped-by作用:

1,字段值内出现"escaped by"字符,该字符将被去除,同时保留其后一个字符;

2,但是对以下特殊的两个“挨着”字符会进行"反转义"处理

"\\0" -- 反转义成\0(0x00)

"\\b", "\\n", "\\r", "\\t" -- 反转义成\b, \n, \r, \t

"\\Z" -- 反转义成ascii码26

"\\N" -- 反转义成NULL

 

二,在“select into outfile”中:

还是先看看enclosed-by的作用:

1,enclosed-by字句的optionally是有作用的

有optionally,则只对字符串类型的字段使用encloed-by字符“包裹”;

无optionally,则对全部字段使用enclosed-by字符“包裹”。

 

最后看看escaped-by的作用:

1,对以下4中情况的字符进行转义

字段值中有"escaped by"字符

字段值中有"enclosed by"字符

字段值中有"fields terminated by"和"lines terminated by"字符串的首个字符

ascii码0 -> 转义之后变成两个字节

第一个字节 - '\\'

第二个字节 - '0'(字符0,而不是ascii 0)

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值