(本文档仅供参考)
...
问题描述
在使用参数多值模糊查询时,直接使用正则表达比写宏代码进行扩展更方便。对应wiki如下: 关于实现参数进行多值模糊查询,现有Wiki可参考,使用宏去实现此效果:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=27001926mysql:where ,但对于非开发人员,是否有其它更简便的方式实现此需求?
解决方案
可通过正则表达式来达成此需求,如下所示,但由于不同的数据库语法的差异,需要根据实际情况进行修改。
mysql:
where 字段 regexp replace(参数,'分隔符(逗号空格等,可自定义)','|')
oracle:where oracle:
where regexp_like(字段,replace(参数,' ','|'))
解决方案
正则表达式在某些数据库中,确实可以更方便地进行模糊查询,但通过正则表达式的写法,需要根据数据库的不同来进行调整,而通过宏代码的实现则考虑到了通用性,两种方式都各有所长。