本篇主要介紹PHP實作模糊查詢的方法,有興趣的朋友參考下,希望對大家有幫助。
模式查詢
1. SQL匹配模式
2. 正規表示式匹配模式(一般不建議使用)
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%';
正則表達式匹配模式
通配符(正規表示式)
#.符合任意的單一字元
##*符合0個或多個在它前面的字元x*表示符合任何數量的x字元 [..]符合中括號中的任意字元 [abc]符合字元ab或c
[a-z]符合任何字母
[0-9]符合任意數字
[0-9]*符合任何數量的任何數字
[a-z]*符合任何數量的字母
^a 表示以字母a開頭
s$表示以字母s結尾
.... 符合大於等於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實作模糊查詢的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!