MySQL Mysql模糊查詢like提速優化

2022-02-17 08:43:15 字數 928 閱讀 9789

一般情況下like模糊查詢的寫法為(field已建立索引):

select `column` from `table` where `field` like '%keyword%';

上面的語句用explain解釋來看,sql語句並未用到索引,而且是全表搜尋,如果在資料量超大的時候,可想而知最後的效率會是這樣

對比下面的寫法:

select `column` from `table` where `field` like 'keyword%';

select locate('

xbar

',`foobar`);

###返回0

select locate(

'bar

',`foobarbar`);

###返回4

select locate(

'bar

',`foobarbar`,5

);###返回7

select `column` from `table` where locate('keyword', `field`)>0

備註:keyword是要搜尋的內容,field為被匹配的字段,查詢出所有存在keyword的資料

2.position('substr' in `field`)方法

position可以看做是locate的別名,功能跟locate一樣

select `column` from `table` where position('keyword' in `filed`)

3.instr(`str`,'substr')方法

select `column` from `table` where instr(`field`, 'keyword' )>0

參考:

模糊查詢銀行卡號mysql MySQL模糊查詢

在mysql中可以使用like關鍵字和萬用字元組成比較特定資料的搜尋模式進行模糊查詢。萬用字元是用來匹配值的一部分的特殊字元,同時使用like關鍵字在where子句中構成查詢條件。萬用字元模糊查詢只能用於文字字段 字串 非文字資料型別字段不能使用萬用字元進行模糊查詢。1 百分號 萬用字元 在模糊查詢...

mysql模糊查詢 MYSQL模糊查詢

mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式模式匹配的格式。一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你...

cad模糊查詢符號 sql模糊查詢

sql模糊查詢的語法為 select column from table where column like pattern sql提供了四種匹配模式 1.表示任意0個或多個字元。如下語句 select from user where name like 三 將會把name為 張三 三腳貓 唐三藏 ...