日常工作BUG集之SQL like的通配符"_"

本文探讨了在SQL查询中使用通配符“_”时遇到的问题,详细解释了为何会出现错误匹配,并提供了两种解决方案:一是通过使用转义字符来明确匹配“_”字符;二是建议采用SQL正则表达式进行更复杂的模式匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bug之like的通配符”_”

场景

(简化)需要写SQL脚本去查看日志,select的语句中的其中一个条件是某字段的值符合某种有规则/模式的字符串,然后对应的条件开始是类似这样写的 fllb_%_ye (目地是匹配fllb_xxx_ye, xxx任意的字符串)

现象

错识匹配到fllbywepye这类的字符串

原因

很明显,问题出在_这个字符,几乎不写SQL脚本的人应该只熟悉%这个通符串了吧!
反正我第一反应是没想起来。

解决

1.使用转义字符‘\’,明确是匹配”_”字符,而不是使用其通配的功能
2.以后类似或高阶一点的需求,考虑用SQL的正则表达式(REGEXP)

学习

SQL通配符

SQL通配符
这里写图片描述

正则表达式

MySQL 正则表达式
这里写图片描述

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值