mysql之like與instr

使用like關鍵字

select * from tbl1 where name like '%紅%'函數

  • 經過'%關鍵字%'的方式來進行模糊搜索。
  • 以'%關鍵字g的模糊搜索不使用索引。好比成語字典,是一個成語一個成語按字母順序排列,好比你想查包含紅這個字的成語,可是紅不在開頭的,要怎麼查,由於紅字沒在開頭你只能一頁一頁的翻。這時就至關於作like操做,全表掃描,沒有任何捷徑。

使用instr函數

select * from tbl1 where instr(name, '紅') > 0spa

  • 將關鍵字與name字段的開頭開始比較,若是關鍵字和開頭的一個字符,或者順序的幾個字符相同,就返回>1
  • 在模糊搜索的狀況下,instr的效率比like高,由於instr直接從開頭查找,找到即返回,只針對被搜索的關鍵字自己,而like則是在於table字段自己。好比「123F45」,「12F345」都知足%F%,若是把F換成其它字符串,like須要匹配的內容就會變多,運算量遠遠大於instr。
相關文章
相關標籤/搜索