mysql 實現模糊查詢

2021-08-14 09:41:13 字數 1811 閱讀 6811

前言

模糊查詢是經常用到的sql語句操作,查詢新聞時,不能夠讓使用者輸入完全正確的標題或內容,才能查詢到結果,這樣的軟體功能是在折磨使用者,導致乙個結果就是,使用者不再使用我們的軟體。使用

查詢新聞標題或新聞內容時,用到了模糊查詢其中的一種方法,select * from news where title like '%' +@title+'%'   ,其中的 % 表示任意0個或多個字元,即可匹配任意型別和長度的字元。

begin

select n.id,n.title,n.createtime,c.[name],n.caid

from news n

inner join category c on n.caid=c.id

where n.title like '%'+@title+'%'

order by n.createtime desc

end

效果

當選擇按「標題」搜尋時,輸入標題中的模糊字眼「世紀」,進行查詢:

搜尋結果圖:

一、模糊查詢還有其他的實現方式:

1.select * from news where title like '_' +@title+'_'

如果@title的值是:三,那麼搜尋結果是「唐三藏」這樣的三個字,且中間的字是「三」的。

解釋:"_" 表示任意單個字元,匹配單個任意字元,它常用來限制表示式的字元長度語句。 

2.select * from news where title like '老[@title]'

如果@title的值是:1-9,表示乙個範圍,那麼搜尋結果為:「老1、老2...老9」

解釋:[ ] 表示括號內所列字元中的乙個(類似正規表示式),指定乙個字元、字串或範圍,要求所匹配物件為它們中的任乙個。 

3.select * from news where title like '[^@title]三'

如果@title的值為:張李王,表示乙個字串,那麼搜尋結果為:排除「張

三、李三、王三」的值,找出「趙

三、孫三」等值。

解釋:[^] 表示不再括號所列之內的單個字元。其取值和[ ]相同,但它要求所匹配物件為指定字元以外得的任乙個字元。

二、sql模糊查詢,使用like比較關鍵字,加上sql裡的萬用字元,請參考以下: 

1、like'mc%' 將搜尋以字母 mc 開頭的所有字串(如 mcbadden)。 

2、like'%inger' 將搜尋以字母 inger 結尾的所有字串(如 ringer、stringer)。 

3、like'%en%' 將搜尋在任何位置包含字母 en 的所有字串(如 bennet、green、mcbadden)。 

4、like'_heryl' 將搜尋以字母 heryl 結尾的所有六個字母的名稱(如 cheryl、sheryl)。 

5、like'[ck]ars[eo]n' 將搜尋下列字串:carsen、karsen、carson 和 karson(如 carson)。 

6、like'[m-z]inger' 將搜尋以字串 inger 結尾、以從 m 到 z 的任何單個字母開頭的所有名稱(如 ringer)。 

7、like'm[^c]%' 將搜尋以字母 m 開頭,並且第二個字母不是 c 的所有名稱(如macfeather)。 小結

每乙個細小知識的總結,都會是成長路上不可缺少的一部分。

mysql模糊查詢 MYSQL模糊查詢

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

mysql模糊查詢索引 MySQL模糊查詢全文索引

全文索引 mysql front dump 2.5 host localhost database test server version 4.0.12 nt log table structure for table t3 create table t3 name char 12 not null...

mysql 正反模糊查詢 mysql模糊查詢

mysql 使用內建函式進行模糊查詢 locate,position,instr,find in set 1 locate substr str,pos 方法 2 position substr in field 方法 3 instr str substr 方法 4 find in set str1...