前段時間我在開發專案的時候,就關於模糊查詢遇到了一點問題,主要是有兩大問題:1、萬用字元問題;2、不連續關鍵字查詢。下面我一一說出我是怎麼解決的:
1、統配符問題
比如說在搜尋框中輸入'%'、'_'、'/'時會出錯,因為這些特殊符號在sql語句查詢的時候是有他特定的意義的,所有這裡要對前台傳過來的keyword搜尋內容進行排除萬用字元處理,我是在工具類中寫了乙個方法**如下:
/*** 根據搜尋特殊字串
* @param id
* @return 取不到返回null
*/public static string specialstr(string str)
if(index1!=-1)
if(index2!=-1)
return stringbuffer.tostring();
}然後在controller層匯入該工具類,使用specialstr方法就ok了,**如下:
string keyword = request.getparameter("keyword");
string keyword1 = "";
if (!"".equals(keyword) && keyword != null) 最後將keyword1作為搜尋內容帶到資料庫中查詢就行了。
2、不連續關鍵字查詢
當在搜尋框中輸入不連續的關鍵字時,也能從資料庫中搜尋的到該內容,就比如:我想搜尋公司名稱為阿里巴巴的資料資訊時,我輸入阿巴也能搜尋的到阿里巴巴,這該怎麼處理呢?其實很簡單,也是寫乙個工具類,將搜尋框中的字串每兩個字元之間都加上乙個『%』就ok了,具體**如下:
public static string specialstrkeyword(string str)
stringbuffer stringbuffer = new stringbuffer(str);
int length=str.length();
for (int i = 0; i 同樣在controller層匯入該工具類,使用specialstrkeyword方法就ok了,**如下:
string keyword = request.getparameter("keyword");
string keyword1 = '';
if (!"".equals(keyword) && keyword != null)
最後將keyword1作為搜尋內容帶到資料庫中查詢就行了。
jq 萬用字元,模糊查詢
input id code id屬性以code開始的所有input標籤 input id code id屬性以code結束的所有input標籤 input id code id屬性包含code的所有input標籤 input name code name屬性以code開始的所有input標籤 inp...
模糊查詢like 萬用字元
create table kk chars varchar 100 insert into kk select 124ujkdak342as union select 1297135 union select jladj gkd lag union select kadgljwt union sel...
MySql like模糊查詢萬用字元使用詳細介紹
一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你使用sql模式時,你不能使用 或!而使用like或not like比較操作符。select 字段 from 表 where 某...