了解MySQ(Oracle)模糊查詢 使用instr()替代like提升效率

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

了解MySQ(Oracle)模糊查詢 使用instr()替代like提升效率

大家都知道like的效率很低,數(shù)據(jù)量大就會(huì)很慢,今天發(fā)現(xiàn)了一個(gè)內(nèi)置函數(shù)instr()效率比like高

  • SELECT?*?FROM?msg_list?WHERE?title?LIKE?'%涂山%'

    可以替換為:

  • SELECT?*?FROM?msg_list?WHERE?INSTR(title,'涂山')?>?0

thinkphp / laravel中使用的方法有:

  1. 使用 whereRaw()執(zhí)行原生INSTR()
  2. 修改構(gòu)造查詢器(不太推薦,不過用起來方便)
    項(xiàng)目根目錄thinkphplibrarythinkdbBuilder.php

    了解MySQ(Oracle)模糊查詢 使用instr()替代like提升效率
    了解MySQ(Oracle)模糊查詢 使用instr()替代like提升效率

    MsgList::where([ ?????'title'?=>?['instr','涂山']]) ?->select();

相關(guān)學(xué)習(xí)推薦:mysql視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享