MYSQL用like查询包含_下划线的数据时要转义

程序&源码 CN-P5 1028℃ 0评论

问题:查询%A%时会把包含A,_A,A_的数据全查出来

之前做多级分类标注某个分类的层级时使用了类似这种%A%,但是发现判断出来的层级出错了。这是因为下划线也被当作特殊字符,做了任意匹配转换了,所以,要想匹配下划线,那么就需要“转义”一下。

方案:使用转义字符

  • 1.使用使用Escape转义 示例:
SELECT * FROM mytable WHERE col LIKE '%A#_B%' ESCAPE '#';
SELECT * FROM mytable WHERE col LIKE '%A\_B%';

其中第一行#符号随意写但是要用ESCAPE ‘#’来告诉解析器把这个字符当特殊字符解析。“\”则默认按照转义字符解析。

  • 2.使用[]转义
    示例:
SELECT * FROM mytable WHERE col LIKE '%A[_]B%';

效果相同。

转载请注明:黑白的自留地 » MYSQL用like查询包含_下划线的数据时要转义

喜欢 (2)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址