1、多字段like模糊查询优化:
最常见的写法:
where a like '%xx%' or b like '%xx%' or c like '%xx%'
这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:
2、如果like的关键字相同:
where instr(nvl(a, '')||nvl(b,'')||nvl(c,''), 'xx') > 0
把要模糊查询的字段先拼接起来,拼接时需要把null转成‘’,否则只要有一个字段值是空,整个拼接的字符串都成空了, 然后用instr 函数去过滤;
3、如果like的关键字不同:
where instr(a, 'xx') > 0 or instr(b, 'yy') > 0 or instr(c, 'zz') > 0
经过测试,这两种方法都比like效率要高;
本文介绍了一种在SQL中进行多字段模糊查询的优化方法,通过使用INSTR函数替代LIKE操作符,有效提高了查询效率。文章详细解释了当关键字相同时,如何将多个字段拼接并转换NULL值为''进行过滤;当关键字不同时,如何分别对每个字段应用INSTR函数进行高效查询。

456

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



