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

Bug之like的通配符”_”

场景

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

现象

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

原因

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

解决

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

学习

SQL通配符

SQL通配符
这里写图片描述

正则表达式

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

参考

猜你喜欢

转载自blog.csdn.net/scholar_ii/article/details/80365182