SQL模糊查詢

2021-08-21 14:28:47 字數 1272 閱讀 6383

專案開發中經常要去寫一些模糊查詢的sql語句,一般的要求就是:select 字段 from 表 where 某欄位 like 條件,時間長了一提起模糊查詢,貌似只知道這種語法,最近做專案過程中,客戶要求更精確的去檢索字段,所以特意去整理一下關於模糊查詢條件的一些東西,方便後期使用。

sql的模糊查詢條件

關於模糊查詢的條件,sql中主要提供了%、下劃線_、中括號、[^ ]四種:

1.%符號

最常用的符號,表示0個和多個字元,可匹配任意型別和長度的字元,例如查詢名字中含有wikey字串的使用者:

select * from sys_users t where t.name like

'%wikey%'

如果想要查詢匹配多個不連續的字串時,可以用and來連線多個like,例如查詢所有名字中帶有張、雨的使用者可以用:

select * from sys_users t where t.name like

'%張%'

and t.name like

'%雨%'

2.下劃線_

表示任意單個字元,匹配單個任意字元,它常用來限制表示式的字元長度語句,通俗點說就是乙個下劃線乙個字元,例如我想查詢乙個張姓的使用者,只知道他名字有三個字,我應該這樣寫:

select * from sys_users t where t.name like

'張__'

3.中括號

表示括號內所列字元中的乙個。指定乙個字元、字串或範圍,要求所匹配物件為它們中的任乙個,類似正規表示式,例如:我想在使用者表中查詢欒、秦、溫姓,且名字為小明的人,我這樣寫即可,而不用分開單個去寫:

select * from sys_users t where t.name like

'[欒秦溫]小明'

3.中括號[^]

與上面相反的功能,我不想查詢欒、秦、溫且叫小明的使用者,那我就用這個符號,例如:

select * from sys_users t where t.name like

'[^欒秦溫]小明'

模糊查詢基本就這幾個重要的功能,很顯然,這樣幾個功能雖然常用,卻並不能解決我當前遇到的檢索問題,那我接著探索吧。

sql 模糊查詢

一般模糊語句如下 select 字段 from 表 where 某欄位 like 條件 其中關於條件,sql提供了四種匹配模式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name lik...

SQL模糊查詢

sql提供了四種匹配模式 1.表示任意 0個或多個字元。如下語句 select from user where name like 三 將會把 name為 張三 三腳貓 唐三藏 等等有 三 的全找出來 2.表示任意單個字元。語句 select from user where name like 三 ...

SQL模糊查詢

sql提供了四種模糊匹配方式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請運用兩個百分號 表示。比如 select from user where u name like 三 將會把u name為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。另外,如果...