一.mysql模糊查詢語法支援2種匹配格式
1.sql匹配模式(開發中應用最多的一種)
2.正規表示式匹配模式(不推薦使用)
1.sql匹配模式(開發中應用最多的一種)
1)使用sql匹配模式,不能使用操作符=或!=
而是使用like或not like
2)使用sql匹配模式,mysql提供了2中萬用字元
%表示任意數量的任意字元(其中包括0個)
_表示任意單個字元
3)使用sql匹配模式,如果匹配格式中不包含
以上2中萬用字元中的任意乙個,其查詢效果等同於=或!=
4)使用sql匹配模式,預設情況下不區分大小寫
例項:1)查詢使用者名稱以某個字元開頭的使用者(在這裡username欄位是varchar型別)
查詢以字元'l'開頭的使用者
like 'l%'
select * from users(表名) where username like 'l%';
2)查詢使用者名稱以某個字元結尾的使用者
%e查詢使用者名稱以字元'e'結尾的使用者
select * from users(表名) where username like '%e';
3)查詢包含某個字元的使用者
查詢包含字元'o'的使用者
%o%select * from users where usernmae like '%o';
4)查詢使用者名稱長度為3的使用者名稱
___(3個下劃線代表3個字元)
select * from users where usernmae like '___';
5)查詢使用者名稱第二個字元為'o'的使用者
'_o%'
select * from users(表名) where username like '_o%';
2.正規表示式匹配模式(不推薦使用)
萬用字元:
.匹配任意單個字元
*匹配0個或多個在它前面的字元
x(*)表示匹配任何數量的x字元
[..]匹配中括號的任意字元
[abc]匹配字元a b 或 c
[a-z]匹配任何字母
[0-9]匹配任何數字
[0-9]*匹配任何數量的任何數字
[a-z]*匹配任何數量的字母
^表示以某個字元或字串開始
^a表示以字母a開頭
$表示以某個字元或字串結尾
$a表示以字母a結尾
使用正規表示式使用的操作模式是regexp或not regexp(rlike或not rlike)
如果使用乙個正規表示式來匹配,其模式有別於sql模式
正規表示式匹配模式,其正規表示式出現在匹配欄位的任何位置,其模式就算匹配了,
不必再兩側放乙個萬用字元來使得其匹配。
例項說明一下:如果使用乙個正規表示式來匹配,其模式有別於sql模式
1)查詢使用者名為字元'l'開頭的使用者
sql匹配模式 l%
正規表示式 ^l
select * from users where username regexp '^l';
2)查詢使用者名稱長度為3的使用者名稱
sql匹配模式 ___(3個下劃線代表3個字元)
正規表示式 ...(3個點)
select * from users where regexp '...';把所有使用者名稱大於等於3的使用者都查詢出來了
注意:如果僅用萬用字元.來匹配。有幾點萬用字元,假設n個,那麼其匹配模式表示,大於等於n個字元
表示精確字元數的方法:^...$
select * from users where regexp '^...$' 即表示三個字元
mysql推薦查詢 MySQL模糊查詢語法(推薦)
sql select from table name where field name like var result mysql query sql or die mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式 模式匹配的格式。sql...
mysql模糊查詢 MYSQL模糊查詢
mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式模式匹配的格式。一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你...
MySQL基礎語法(四)(模糊查詢 連線查詢)
匹配任意多個字元,匹配任意單個字元 模糊查詢使用like關鍵字進行匹配 模糊查詢mysql做了優化可以忽略大小寫,但是一般情如果多資料庫開發環境下不推薦直接使用單一大小寫 都會做忽略大小寫處理 查詢學生姓張的學生資訊 select id,name,agefrom student where name...