1
在REGEXP_LIKE中使用通配符正则表达式的表现会低于不包括condition子句。使用通配符的Oracle正则表达式
例如,我想创建一个Oracle准备的语句像下面这样:
select * from table_name
where regexp_like(column1, ?)
and regexp_like(column2, ?)
and regexp_like(column3, ?)
and regexp_like(column4, ?)
查询可能不需要指定标准中的所有列。对于那些没有条件的列,我们可以使用通配符正则表达式* 或,我们可以简单地不包含where子句中的条件。
select * from table_name
where regexp_like(column1, 'h[i|ello]')
and regexp_like(column2, '.*')
and regexp_like(column3, '.*')
and regexp_like(column4, 'bye')
OR
select * from table_name
where regexp_like(column1, 'h[i|ello]')
and regexp_like(column4, 'bye')
会使用通配符在REGEXP_LIKE条件比简单地不包括条件都不太高性能?如果是这样,它会是一个显着的性能差异?
潜在的问题是可以使用单个sql语句,而不必根据指定的条件动态创建sql语句。