SQ 模糊查詢

2021-09-07 04:44:51 字數 2301 閱讀 4404

--between...and...在資料庫內部是做作特殊優化的,執行效率比》 and《等這種方式快;

--between a and b 相當於:字段》=a and欄位<=b

例如:select * from dbo.mystudent where s_age between 20 and 30

between ..and還可以做分頁。

比如,我現在設定每一頁顯示3條資料

傳統的做法:

第一頁:

select top 3 * from dbo.mystudent

第二頁:

select *from dbo.mystudent where s_id between 4 and 6

...總結分頁:

select * from dbo.mystudent where s_id between (當前頁-1)*頁容量+1  and 當前頁*頁容量

判斷乙個列的值,是否在括號內:

select * from dbo.mystudent where s_gender in ('女')--正確

select * from dbo.mystudent where s_gender in(1) --錯誤,資料型別不同【在將 varchar 值 '男' 轉換成資料型別 int 時失敗。】

使用系統已經定義好的萬用字元,按照定義的規則匹配資料,如果能匹配就查出來:

萬用字元,匹配符:_(下劃線),%(百分號),(中括號),^(尖括號)

_代表乙個任意字元;

%代表零個或多個任意字元;

中括號代表乙個字元的取值區間;

^配和使用,表示不是這個區間。注意,^z字元是資料庫不相容的,sql server可以用,其他資料庫用not like

--查詢姓「張」的學生資訊

select * from dbo.mystudent where s_name like '張%'

--查詢名字中包含字母『o』的學生資訊

select * from dbo.mystudent where s_name like '%o%'

--查詢名字的第二位是字母'i'的學生資訊

select * from dbo.mystudent where s_name like '_i%'

--取值區間,用的很少。。

--查詢中間任何位置有字母的學生資訊

select * from dbo.mystudent where s_name like '%[a-z]%'

--取值區間,用的很少。。

--查詢中間任何位置有數字的學生資訊

select * from dbo.mystudent where s_name like '%[0-9]%'

--查詢名字中有字母或數字的學生資訊

select * from dbo.mystudent where s_name like '%[0-9,a-z]%'

--select * from dbo.mystudent where s_name like '張四'

--表中有名字為張四的學生,現在判斷,_(下劃線)是否可以匹配零個字元。如果可以的話,下面的這句sql可以檢索到資料

select * from dbo.mystudent where s_name like '張四_'

事實證明:_下滑線不能匹配零個字元,也就是說,下劃線代表後面必須有乙個字元!!!

--查詢最後一位不是數字的學生資訊

select * from dbo.mystudent where s_name like '%[^0-9]%'

mysql模糊查詢 MYSQL模糊查詢

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

cad模糊查詢符號 sql模糊查詢

sql模糊查詢的語法為 select column from table where column like pattern sql提供了四種匹配模式 1.表示任意0個或多個字元。如下語句 select from user where name like 三 將會把name為 張三 三腳貓 唐三藏 ...

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...