模糊查询%如何在最前面使用索引
发布时间
阅读量:
阅读量
前言
众所周知,在进行索引操作时,若模糊查询中的%符号被放置在最前端位置,将导致索引无法正常发挥作用。
然而,在一次先前的面试过程中,面试官向我提出了一个相关问题:在%符号位于查询条件最前面的情况下,是否存在能够利用索引的情形?
借此博客内容,对此问题进行详细阐述。
正文
解决方式一概述
对模糊查询涉及的字段进行反转操作,但需注意,针对"%keywork%"形式的索引,该方式并不具备有效性。
例如
select * from student where name like '%三';
我们可以将其调整为:
select * from student where reverse(name) like reverse('%三');
通过引入索引机制,该技术手段能够在很大程度上减少输入输出操作的频率。
解决方式二
严格来说,这种方式并不能被定义为真正的解决方案,或许只是面试过程中考官常问问题的常规应答方式,例如“在%前置的前提下,何种情形下会采用索引”;
该测试案例来源于博客
首先我们拥有TEST_USER表:
CREATE TABLE `TEST_USER` (
全部评论 (0)
还没有任何评论哟~
