今天看到之前写的SQL语句,运用了正则表达式regexp_like
,但是回想不起来当时为什么要用它,代码里面的SQL是这样的:
sql封装在了Fun里面,带入了v_temp变量:
select * from A
where regexp_like(字段a, v_temp)
对于v_temp的业务场景,取值可以为null、like ‘1A%’、‘1A1’和’1A2’;
如果使用like
select * from A
where 字段a like v_temp
无法满足’1A1’和’1A2’的这样的情况;
如果使用in
select * from A
where 字段a in(v_temp)
无法满足模糊查询like '1A%'的情况;
所以使用正则表达式regexp_like
,解决了这个问题,其中v_temp传入参数格式为1A、1A1|1A2
解决like、in无法随参数切换的问题;