大家都知道like的效率很低,數(shù)據(jù)量大就會很慢,今天發(fā)現(xiàn)了一個內(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)造查詢器(不太推薦,不過用起來方便)
項目根目錄thinkphplibrarythinkdbBuilder.php
MsgList::where([ 'title' => ['instr','涂山']]) ->select();
相關(guān)學(xué)習(xí)推薦:mysql視頻教程