查詢所有姓張的同學
select * from student where left(sname,1)=『張『 看上去很美,如果改成查詢名字中帶亮的學生怎麼做?
換一種做法 like
select * from student where sname like 『張%』 會吧所有姓張的都查詢到,現在我想查詢姓張並且名字是乙個字的學生?
select * from student where sname like 『%亮%』
^只有mssql server支援,其他dbms用not like。
萬用字元 %多字元匹配的萬用字元,它匹配任意次數(零或多個)出現的任意字元
萬用字元_ 單字元匹配,它匹配單個出現的字元
只匹配乙個字元 並且這個字元必須是範圍內的 [0-9] [a-z]
not與like一起使用:not like ….
要通配_、%、[、^這些字元怎麼辦?[_]、[%]、[ [ ]、^(不需要放到中括號裡,因為^只有放到中括號中才認為是萬用字元)
注意:like 'a%'與like'%a'的區別。 前者查詢首字元為a的,後者查詢末位為a的。
--萬用字元:_ 、 % 、 、 ^
-- _ 表示任意的單個字元
--姓張,兩個字的。
select * from mystudent where fname like '張_'
--姓張,三個字的
select * from mystudent where fname like '張__'
-- % 匹配任意多個任意字元
--無論姓名字數,只要第乙個字元是'張'的就查詢出來
select * from mystudent where fname like '張%'
select * from mystudent where fname like '張%' and len(fname)=2
-- 表示篩選,範圍。
--查詢出姓名中包含某些值的那些人
select * from tblstudent where tsname like '張[0-9]妹'
select * from tblstudent where tsname like '張_妹'
select * from tblstudent where tsname like '張[a-z]妹'
select * from tblstudent where tsname like '張[a-z0-9]妹'
select * from tblstudent where tsname like '張[^0-9]妹'
select * from tblstudent where tsname not like '張[0-9]妹'
update tblstudent set tsname=replace(tsname,'(女)','')
--萬用字元放到中就轉義了就不認為是萬用字元了。
--查詢出姓名中包含%的那些人
select * from tblstudent where tsname like '%[%]%'
--自己指定乙個轉義符
--where columna like '%5/%%' escape '/'
select * from tblstudent where tsname like '%/]%' escape '/'
select * from tblstudent where tsname like '%/[%' escape '/'
select * from tblstudent where tsname like '%/[%/]%' escape '/'
SQL server模糊查詢
一,搜尋條件中的模式匹配 like 關鍵字搜尋與指定模式匹配的字串 日期或時間值。like 關鍵字使用常規表示式包含值所要匹配的模式。模式包含要搜尋的字串,字串中可包含四種萬用字元的任意組合。萬用字元 含義 包含零個或更多字元的任意字串。任何單個字元。指定範圍 例如 a f 或集合 例如 abcde...
SQL SERVER 的模糊查詢 LIKE
今天寫個動態指令碼,需要把資料庫裡面包含 user 的表刪除掉,突然想不起來如何搜尋通配字元了,趕緊查查 msdn 整理了下模糊查詢的知識點,留著以後查閱用。like模糊查詢的萬用字元 萬用字元 說明 示例 包含零個或多個字元的任意字串。where title like computer 將查詢在書...
SQL SERVER 的模糊查詢 LIKE
今天寫個動態指令碼,需要把資料庫裡面包含 user 的表刪除掉,突然想不起來如何搜尋通配字元了,趕緊查查msdn,整理了下模糊查詢的知識點,留著以後查閱用。like模糊查詢的萬用字元 萬用字元說明示例 包含零個或多個字元的任意字串。where title like computer 將查詢在書名中任...