Advertisement

模糊查询%如何在最前面使用索引

阅读量:

前言

众所周知,在进行索引操作时,若模糊查询中的%符号被放置在最前端位置,将导致索引无法正常发挥作用。

然而,在一次先前的面试过程中,面试官向我提出了一个相关问题:在%符号位于查询条件最前面的情况下,是否存在能够利用索引的情形?

借此博客内容,对此问题进行详细阐述。

正文

解决方式一概述

对模糊查询涉及的字段进行反转操作,但需注意,针对"%keywork%"形式的索引,该方式并不具备有效性。

例如

复制代码
    select * from student where name like '%三';
    
    
      
    

我们可以将其调整为:

复制代码
    select * from student where reverse(name) like reverse('%三');
    
    
      
    

通过引入索引机制,该技术手段能够在很大程度上减少输入输出操作的频率。

解决方式二

严格来说,这种方式并不能被定义为真正的解决方案,或许只是面试过程中考官常问问题的常规应答方式,例如“在%前置的前提下,何种情形下会采用索引”;

该测试案例来源于博客

首先我们拥有TEST_USER表:

复制代码
    CREATE TABLE `TEST_USER` (

全部评论 (0)

还没有任何评论哟~