專案開發中經常要去寫一些模糊查詢的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為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。另外,如果...