SQL模糊查詢

2022-12-21 14:24:04 字數 2648 閱讀 2371

在進行資料庫查詢時,有完整查詢和模糊查詢之分。

一般模糊查詢語句如下:

select欄位from表where某欄位like條件

其中關於條件,sql提供了四種匹配模式:

1,%:表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號(

比如select * from [user] where u_name like '%三%'

將會把u_name為「張三」,「張貓三」、「三腳貓」,「唐三藏」等等有「三」的記錄全找出來。

另外,如果需要找出u_name中既有「三」又有「貓」的記錄,請使用and條件select * from [user] where u_name like '%三%' and u_name like '%貓%'

若使用select * from [user] where u_name like '%三%貓%'雖然能搜尋出「三腳貓」,但不能搜尋出符合條件的「張貓三」。

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

比如select * from [user] where u_name like '_三_'

只找出「唐三藏」這樣u_name為三個字且中間乙個字是「三」的;

再比如select * from [user] where u_name like '三__';只找出「三腳貓」這樣name為三個字且第乙個字是「三」的;

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

比如select * from [user] where u_name like '[張李王]三'將找出「張三」、「李三」、「王三」(而不是「張李王三」);

如[ ]內有一系列字元(01234、abcde之類的)則可略寫為「0-4」、「a-e」select * from [user] where u_name like '老[1-9]'將找出「老1」、「老2」、、「老9」;

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

比如select * from [user] where u_name like '[^張李王]三'將找出不姓「張」、「李」、「王」的「趙三」、「孫三」等;

select * from [user] where u_name like '老[^1-4]';將排除「老1」到「老4」,尋找「老5」、「老6」、

5,查詢內容包含萬用字元時

由於萬用字元的緣故,導致我們查詢特殊字元的語句無法正常實現,而把特殊字元用「[ ]」

function sqlencode(str)

str=replace(str此句一定要在最前str=replace(strstr=replace(strsqlencode=strend function

在查詢前將待查字串先經該函式處理即可,並且在網頁上連線資料庫用到這類的查詢語句時侯要注意:如select * from user where name like '老[^1-4]';上面《'》老[^1-4]《'》是要有單引號的,別忘了,我

access

在近日的寫web程式時用到了access的模糊查詢,在acces裡寫**怎麼也找不到記錄,後來才起來原來acess條件:查詢表a的name欄位中包括"b"的記當在access裡的**:

1 select * from a where name like '*b*'sql server查詢分析器的**

select * from a where name like '%b%'這時你會發現access裡可以找到相關的記錄,但把'*'必成'%'就找不和sql server不一樣

以上只是在資料庫中的**,如果要寫在程式裡可就不能用.'*'了,還是要用'%'程式:

strsql="select * from a where name like '%b%'"所以如果有朋友和我一樣喜歡先在資料庫中**測試,那可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的任何單個字母開頭的所有名稱(如ringe7、like'm[^c]%'將搜尋以字母m開頭,並且第二個字母不是c的所有名稱(如macfeather

下面這句查詢字串是我以前寫的,根據變數zipcode_key在郵政編碼表zipcode中查詢對應的資料,這句是三列中查詢包含關鍵字的所有資料項,並按省、市、位址排序。這個例子比較簡單,只要你理解了方法就可以寫

sql = "select * from zipcode where (address like'%" & zipcode_key & "%') or (city like'%" & zipco

儲存過程中使用模糊查詢的例子:select * from questions where qtitle likekeyword +' ] %

SQL基本表查詢

資料庫實驗報告 實驗三實驗題目 sql 基本表查詢 指導老師 實驗型別 驗證 實驗室 軟體實驗室二 專業班級 電腦科學與技術 網路工程方向 班 姓名2013年 10月20 日 一 實驗題目 二 實驗目的和要求 熟練掌握查詢語句的一般格式,熟練掌握連線 巢狀和集合查詢的使用。三 實驗內容 1 查詢st...

mysql模糊匹配查詢

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

資料庫sql高階查詢教務 答案

設教學資料庫education有三個關係 學生關係s sno,sname,age,sdept 學習關係sc sno,cno,grade 課程關係c cno,cname,cdept,tname 查詢問題 1 查所有年齡在20歲以下的學生姓名及年齡。2 查考試成績有不及格的學生的學號 3 查所年齡在20...