需求是输入一组提单号进行查询。
手动拼sql如:select * from table where column1 like or column1 like or column1 like or column1 like 这样的多个like or
之前的实现是用
select * from table where REGEXP_LIKE(column1,'TEST201201|ABC201205...')
这种的,但由于输入提单号过多,正则表达式限制是256字符无法满足要求。
求助各位大大,有别的实现方式吗?
手动拼sql如:select * from table where column1 like or column1 like or column1 like or column1 like 这样的多个like or
之前的实现是用
select * from table where REGEXP_LIKE(column1,'TEST201201|ABC201205...')
这种的,但由于输入提单号过多,正则表达式限制是256字符无法满足要求。
求助各位大大,有别的实现方式吗?
(select regexp_substr('TEST201201|ABC201205', '[^\|]+', 1, level) str
from dual
connect by level <= regexp_count('TEST201201|ABC201205', '\|') + 1)
select t1.* from t1, t where REGEXP_LIKE(t1.column1, t.str);
那就是你输入单号有包容关系了,那就加个distinct吧,反正需求实现了就行。