一般情況下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為 張三 三腳貓 唐三藏 ...