以前模糊查询使用的是:like
例如(Schema KMH_QC):
select v.unitprice, v.unit, v.STORAGE, v.stationeryname, v.stationeryid,
v.modelsize, v.classname, v.classid
FROM v_wjqc_storage v
where v.stationeryname LIKE '%'||#stationeryName#||'%';
问题:当传递进去的stationeryName值是'%'或者'_'时,它会查出所有信息。
解决方案:条件换为:instr(v.stationeryname,#stationeryName#) > 0
'_'通配一个字符,'%'通配N个字符,这是SQL的基本语法就有!
例如:传入参数为"_成_",表达的意思是查找三个字的,并且中间那个字是"成"的."_"可以出现多次,每出现一次代通配一个字符.
传入参数为"%成",表达的意思是最后个字是为"成"的.
传入参数为"%成%",表达的意思是只要包含"成"的都显示.
传入参数为"成%",表达的意思是第一个字是为"成"的.
同时"%"和"_"还可以配合使用:
例如:
传参数为"_成%"表示第二字为"成"的都显示.
非常灵活,自由组合.
本文深入解析SQL模糊查询中'_'与'%'的使用方式,通过实例演示如何准确匹配特定字符组合,提高查询效率与准确性。包括通配符在多字符与单字符场景下的灵活运用,以及实例代码展示。
758

被折叠的 条评论
为什么被折叠?



