程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP模糊查詢

PHP模糊查詢

編輯:PHP綜合
作為一個開發者,模糊查詢是經常用到的,而且以後也是經常用到的,今天把關於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 '^...$';
*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved