PHP模糊查詢的實現方法(推薦)_php執行個體

來源:互聯網
上載者:User

模式查詢

1. SQL匹配模式

2. Regex匹配模式(一般不推薦使用)

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%';

Regex匹配模式

萬用字元(Regex)

.匹配任意的單個字元

*匹配0個或多個在它前面的字元

x*表示匹配任何數量的x字元

    [..]匹配中括弧中的任一字元
    [abc]匹配字元ab或c
    [a-z]匹配任意字母
    [0-9]匹配任一數字
    [0-9]*匹配任意數量的任何數字
    [a-z]*匹配任何數量的字母

^表示以某個字元或字串開始
  
    ^a 表示以字母a開頭

$表示以某個字元或字串結尾
  
    s$表示以字母s結尾

使用Regex匹配模式使用的操作符是:

REGEXP 或 NOT REGEXP(RLIKE 或 NOT RLIKE)

注意:Regex匹配模式,其Regex出現在匹配欄位的任意位置,

其模式就算匹配了,不必在兩側放一個萬用字元來使得其匹配;

如果僅用萬用字元 . 來匹配,假設N個,那麼其匹配模式表示,大於等於N個;

怎麼理解上面這句話呢?

就是說

...   匹配大於等於3個字元的資料
....  匹配大於等於4個字元的資料
#查詢使用者名稱以字元 l開頭的使用者:^l;
#Regex寫法

SELECT * FROM user WHERE username REGEXP '^l';#sql匹配模式寫法:SELECT * FROM user WHERE username LIKE 'l%';#查詢使用者名稱正好是三個字元的使用者:^...$;#sql匹配模式寫法:SELECT * FROM user WHERE username LIKE '___';#Regex寫法SELECT * FROM user WHERE username REGEXP '^...$';

以上這篇PHP模糊查詢的實現方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.