大家都知道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中使用的方法有:
- 使用 whereRaw()執(zhí)行原生INSTR()
- 修改構(gòu)造查詢器(不太推薦,不過(guò)用起來(lái)方便)
項(xiàng)目根目錄thinkphplibrarythinkdbBuilder.php
MsgList::where([ 'title' => ['instr','涂山']]) ->select();
相關(guān)學(xué)習(xí)推薦:mysql視頻教程