PHP模糊查詢的實(shí)現(xiàn)方法(推薦)
模式查詢
1. SQL匹配模式
2. 正則表達(dá)式匹配模式(一般不推薦使用)
SQL匹配模式
1.使用sql匹配模式,不能使用操作符=或!=,而是使用操作符LIKE或NOT LIKE;
2.使用sql匹配模式,MYSQL提供了2種通配符。
%表示任意數(shù)量的任意字符(其中包括0個(gè))
_表示任意單個(gè)字符
3.使用sql匹配模式,如果匹配格式中不包含以上2種通配符中的任意一個(gè),其查詢的效果等同于=或!=
4.使用sql匹配模式,匹配時(shí),不區(qū)分大小寫
#查詢用戶名以某個(gè)字符開頭的用戶 #查詢用戶名以字符'l'開頭的用戶: l% SELECT * FROM user WHERE username LIKE 'l%'; #查詢用戶名以某個(gè)字符結(jié)尾的用戶 #查詢用戶名以字符'e'結(jié)尾的用戶:e% SELECT * FROM user WHERE username LIKE 'e%'; #查詢用戶名包含某個(gè)字符的用戶 #查詢用戶名包含字符'o'的用戶:%o% SELECT * FROM user WHERE username LIKE '%o%'; #查詢包含三個(gè)字符的用戶 SELECT * FROM user WHERE username LIKE '___'; #查詢用戶名第二個(gè)字符為o的用戶:_o% SELECT * FROM user WHERE username LIKE '_o%';
正則表達(dá)式匹配模式
通配符(正則表達(dá)式)
.匹配任意的單個(gè)字符
*匹配0個(gè)或多個(gè)在它前面的字符
x*表示匹配任何數(shù)量的x字符
[..]匹配中括號(hào)中的任意字符
[abc]匹配字符ab或c
[a-z]匹配任意字母
[0-9]匹配任意數(shù)字
[0-9]*匹配任意數(shù)量的任何數(shù)字
[a-z]*匹配任何數(shù)量的字母
^表示以某個(gè)字符或字符串開始
^a 表示以字母a開頭
$表示以某個(gè)字符或字符串結(jié)尾
s$表示以字母s結(jié)尾
使用正則表達(dá)式匹配模式使用的操作符是:
REGEXP 或 NOT REGEXP(RLIKE 或 NOT RLIKE)
注意:正則表達(dá)式匹配模式,其正則表達(dá)式出現(xiàn)在匹配字段的任意位置,
其模式就算匹配了,不必在兩側(cè)放一個(gè)通配符來使得其匹配;
如果僅用通配符 . 來匹配,假設(shè)N個(gè),那么其匹配模式表示,大于等于N個(gè);
怎么理解上面這句話呢?
就是說
... 匹配大于等于3個(gè)字符的數(shù)據(jù)
.... 匹配大于等于4個(gè)字符的數(shù)據(jù)
#查詢用戶名以字符 l開頭的用戶:^l;
#正則表達(dá)式寫法
SELECT * FROM user WHERE username REGEXP '^l'; #sql匹配模式寫法: SELECT * FROM user WHERE username LIKE 'l%'; #查詢用戶名正好是三個(gè)字符的用戶:^...$; #sql匹配模式寫法: SELECT * FROM user WHERE username LIKE '___'; #正則表達(dá)式寫法 SELECT * FROM user WHERE username REGEXP '^...$';
以上這篇PHP模糊查詢的實(shí)現(xiàn)方法(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- ThinkPHP like模糊查詢,like多匹配查詢,between查詢,in查詢,一般查詢書寫方法
- PHP+MySQL實(shí)現(xiàn)模糊查詢員工信息功能示例
- PHP+MySQL使用mysql_num_rows實(shí)現(xiàn)模糊查詢圖書信息功能
- jq.ajax+php+mysql實(shí)現(xiàn)關(guān)鍵字模糊查詢(示例講解)
- PHP中模糊查詢并關(guān)聯(lián)三個(gè)select框
- 在php7中MongoDB實(shí)現(xiàn)模糊查詢的方法詳解
- PHP MYSQL實(shí)現(xiàn)登陸和模糊查詢兩大功能
- thinkphp實(shí)現(xiàn)like模糊查詢實(shí)例
- PHP模糊查詢技術(shù)實(shí)例分析【附源碼下載】
相關(guān)文章
ThinkPHP分組下自定義標(biāo)簽庫實(shí)例
這篇文章主要介紹了ThinkPHP分組下自定義標(biāo)簽庫的方法,以實(shí)例形式講述了自定義標(biāo)簽庫的具體步驟,非常具有參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11用php守護(hù)另一個(gè)php進(jìn)程的例子
這篇文章主要介紹了用php守護(hù)另一個(gè)php進(jìn)程的例子,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02使用pthreads實(shí)現(xiàn)真正的PHP多線程(需PHP5.3以上版本)
PHP 5.3 以上版本,使用pthreads PHP擴(kuò)展,可以使PHP真正地支持多線程。多線程在處理重復(fù)性的循環(huán)任務(wù),能夠大大縮短程序執(zhí)行時(shí)間2014-05-05用php和jQuery來實(shí)現(xiàn)“頂”和“踩”的投票功能
本文結(jié)合實(shí)例,講解使用PHP+MySql+jQuery實(shí)現(xiàn)的“頂”和“踩”投票功能,判斷用戶的投票行為是否有效。2016-10-10Yii中CGridView實(shí)現(xiàn)批量刪除的方法
這篇文章主要介紹了Yii中CGridView實(shí)現(xiàn)批量刪除的方法,實(shí)例分析了CGridView的相關(guān)設(shè)置,前臺(tái)JS調(diào)用與后臺(tái)Action具體功能實(shí)現(xiàn)的技巧,需要的朋友可以參考下2015-12-12深入淺析php中sprintf與printf函數(shù)的用法及區(qū)別
這篇文章主要介紹了php中sprintf與printf函數(shù)的用法及區(qū)別,涉及到printf函數(shù)、sprintf函數(shù)相關(guān)資料,需要的朋友可以參考下2016-01-01