首頁  >  文章  >  後端開發  >  PHP實作模糊查詢的方法

PHP實作模糊查詢的方法

墨辰丷
墨辰丷原創
2018-06-01 11:50:572826瀏覽

本篇主要介紹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結尾

使用正規表示式比對模式使用的運算元為:

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 陣列處理函數extract詳解及實例

php in_array() 檢查陣列中是否存在某個值詳解

#PHP magento後台無法登入問題的解決方法

##

以上是PHP實作模糊查詢的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn