异常:mysql使用like搜索下划线“_“,结果匹配了所有结果
·
MySQL> select * from t where x like ‘%_%’;
返回全部的记录,不是想要的结果!
为什么错误?
因为在like语句中的下划线的含义是“任意一个字符”,类似“%”代表匹配任意多个字符的。
4.正确的查询方法
能想到的有如下两种方法。
1)第一种方法使用escape转义
mysql> select * from t where x like ‘%_%’ escape ‘’;
返回包含有"_"的记录,正确
escape的内容可以任意,只要保证前后一致即可。
mysql> select * from t where x like ‘%|_%’ escape ‘|’;
返回包含有"_"的记录,正确
mysql> select * from t where x like ‘%_%’ escape '’;
返回包含有"_"的记录,正确
2)使用instr函数辅助判断
使用instr函数判断字段中是否包含“_”,如果包含返回值是非零的,如果不包含则返回值是零。
mysql> select * from t where instr(x,’_’)!=0;
————————————————
版权声明:本文为CSDN博主「克里斯蒂亚诺龙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42844971/article/details/93485970
更多推荐



所有评论(0)