您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php實現模糊查詢的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
php實現模糊查詢的方法:1、使用SQL匹配模式,操作符就要使用LIKE或NOT LIKE,匹配時,不區分大小寫;2、使用正則表達式匹配模式,其正則表達式出現在匹配字段的任意位置。
php實現模糊查詢的方法:
方法1:SQL匹配模式
1.使用sql匹配模式,不能使用操作符=
或!=
,而是使用操作符LIKE或NOT LIKE;
2.使用sql匹配模式,MYSQL提供了2種通配符。
%
表示任意數量的任意字符(其中包括0個)
_
表示任意單個字符
3.使用sql匹配模式,如果匹配格式中不包含以上2種通配符中的任意一個,其查詢的效果等同于=或!=
4.使用sql匹配模式,匹配時,不區分大小寫
#查詢用戶名以某個字符開頭的用戶 #查詢用戶名以字符'l'開頭的用戶: l% SELECT * FROM user WHERE username LIKE 'l%'; #查詢用戶名以某個字符結尾的用戶 #查詢用戶名以字符'e'結尾的用戶:e% SELECT * FROM user WHERE username LIKE 'e%'; #查詢用戶名包含某個字符的用戶 #查詢用戶名包含字符'o'的用戶:%o% SELECT * FROM user WHERE username LIKE '%o%'; #查詢包含三個字符的用戶 SELECT * FROM user WHERE username LIKE '___'; #查詢用戶名第二個字符為o的用戶:_o% SELECT * FROM user WHERE username LIKE '_o%';
方法2:正則表達式匹配模式
通配符(正則表達式)
.
匹配任意的單個字符
*
匹配0個或多個在它前面的字符
x*
表示匹配任何數量的x字符
[..]匹配中括號中的任意字符
[abc]匹配字符ab或c
[a-z]匹配任意字母
[0-9]匹配任意數字
[0-9]*匹配任意數量的任何數字
[a-z]*匹配任何數量的字母
^
表示以某個字符或字符串開始
^a
表示以字母a開頭
$
表示以某個字符或字符串結尾
s$
表示以字母s結尾
使用正則表達式匹配模式使用的操作符是:
REGEXP
或 NOT REGEXP
(RLIKE 或 NOT RLIKE)
注意:正則表達式匹配模式,其正則表達式出現在匹配字段的任意位置,
其模式就算匹配了,不必在兩側放一個通配符來使得其匹配;
如果僅用通配符 . 來匹配,假設N個,那么其匹配模式表示,大于等于N個;
怎么理解上面這句話呢?
就是說
... 匹配大于等于3個字符的數據
.... 匹配大于等于4個字符的數據
#查詢用戶名以字符 l開頭的用戶:^l;
#正則表達式寫法
SELECT * FROM user WHERE username REGEXP '^l'; #sql匹配模式寫法: SELECT * FROM user WHERE username LIKE 'l%'; #查詢用戶名正好是三個字符的用戶:^...$; #sql匹配模式寫法: SELECT * FROM user WHERE username LIKE '___'; #正則表達式寫法 SELECT * FROM user WHERE username REGEXP '^...$';
關于php實現模糊查詢的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。