mysql 换行符 转义_Mysql like语句转义字符

吖,以前我还没碰见过,为了这个问题,我还专门去看了一下手册,查询一个\,是必须用\\\\。

原文如下:

因为 MySQL 在字符串中使用的是 C 的转义句法(例如 “/n”),

所以在 LIKE 字符串中使用的任何一个 “/” 必须被双写。

例如,为了查找 “/n”,必须以 “//n” 形式指定它。为了查找 “/”,必须指定它为 “”

(反斜线被语法分析器剥离一次,另一次在模式匹配时完成,留下一条单独的反斜线被匹配)。

mysql> SELECT * FROM `ta` WHERE `memo` = 'a//';

mysql> SELECT * FROM `ta` WHERE `memo` LIKE 'a';

+----+------+

| id | memo |

+----+------+

| 1 | a/ |

+----+------+

# 在 LIKE 子句中,为了查找 “/”,必须指定它为 “”

mysql> SELECT * FROM `ta` WHERE `memo` = 'a';

mysql> SELECT * FROM `ta` WHERE `memo` LIKE 'a';

+----+------+

| id | memo |

+----+------+

| 2 | a// |

+----+------+

# 在 LIKE 子句中,为了查找 “/”,必须指定它为 “”

mysql> SELECT * FROM `ta` WHERE `memo` = 'a//n';

mysql> SELECT * FROM `ta` WHERE `memo` LIKE 'an';

+----+------+

| id | memo |

+----+------+

| 3 | a/n |

+----+------+

# 在 LIKE 子句中,为了查找 “/”,必须指定它为 “”

字符转移是递归处理的,看看:

原始:an

第一次 a//n

第二次 a/n

又如:a//n

第一次 an

第二次 a//n

第三次 a/n

直到/没有可以匹配的转移字符为止。//,这种情况会不停的转是因此/这个字符的二进制编码造成的。你可以说是bug,但是就是那么回事。

对/的处理要经过3次转义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值