关于 mysql模糊查询时通配符 “_”和“%”的处理
·
今天发现公司产品在模糊搜索时 搜索“_”会返回所有数据
然后拿到数据库去执行时确实发现会查出所有数据
数据模糊查询逻辑如下:
SELECT * FROM `work_time` WHERE `name` LIKE "%?%"
使用的是包含语句 ?为传入的值
_在SQL里面是通配符 代表一个字符
% 在SQL里面是通配符 代表任意长度字符
当我们输入
SELECT * FROM `work_time` WHERE `name` LIKE "%_%"
代表那么包含一个长度(>=1个长度)的所有数据
SELECT * FROM `work_time` WHERE `name` LIKE "%%%
代表那么包含任意长度的所有数据
因此需要转义 加 \ 可查出包含% 和_的数据
SELECT * FROM `work_time` WHERE `name` LIKE "%\_%
SELECT * FROM `work_time` WHERE `name` LIKE "%\%%
实际应用搜索车牌号为7位的车辆(川A88888)存在异常车牌号就不是7位
select car_num from car where car_num like "_______"
like后面直接加7根下划线就可以了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)