溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)模糊查詢(xún)功能

發(fā)布時(shí)間:2020-12-23 16:16:21 來(lái)源:億速云 閱讀:285 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)模糊查詢(xún)功能,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。

模式查詢(xún)

1. SQL匹配模式

2. 正則表達(dá)式匹配模式(一般不推薦使用)

SQL匹配模式

1.使用sql匹配模式,不能使用操作符=或!=,而是使用操作符LIKE或NOT LIKE;

2.使用sql匹配模式,MYSQL提供了2種通配符。

%表示任意數(shù)量的任意字符(其中包括0個(gè))

_表示任意單個(gè)字符

3.使用sql匹配模式,如果匹配格式中不包含以上2種通配符中的任意一個(gè),其查詢(xún)的效果等同于=或!=

4.使用sql匹配模式,匹配時(shí),不區(qū)分大小寫(xiě)

#查詢(xún)用戶(hù)名以某個(gè)字符開(kāi)頭的用戶(hù)
#查詢(xún)用戶(hù)名以字符'l'開(kāi)頭的用戶(hù): l%
SELECT * FROM user WHERE username LIKE 'l%';
#查詢(xún)用戶(hù)名以某個(gè)字符結(jié)尾的用戶(hù)
#查詢(xún)用戶(hù)名以字符'e'結(jié)尾的用戶(hù):e%
SELECT * FROM user WHERE username LIKE 'e%';
#查詢(xún)用戶(hù)名包含某個(gè)字符的用戶(hù)
#查詢(xún)用戶(hù)名包含字符'o'的用戶(hù):%o%
SELECT * FROM user WHERE username LIKE '%o%';
#查詢(xún)包含三個(gè)字符的用戶(hù)
SELECT * FROM user WHERE username LIKE '___';
#查詢(xún)用戶(hù)名第二個(gè)字符為o的用戶(hù):_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è)字符或字符串開(kāi)始
  
    ^a 表示以字母a開(kāi)頭

$表示以某個(gè)字符或字符串結(jié)尾
  
    s$表示以字母s結(jié)尾

使用正則表達(dá)式匹配模式使用的操作符是:

REGEXP 或 NOT REGEXP(RLIKE 或 NOT RLIKE)

注意:正則表達(dá)式匹配模式,其正則表達(dá)式出現(xiàn)在匹配字段的任意位置,

其模式就算匹配了,不必在兩側(cè)放一個(gè)通配符來(lái)使得其匹配;

如果僅用通配符 . 來(lái)匹配,假設(shè)N個(gè),那么其匹配模式表示,大于等于N個(gè);

怎么理解上面這句話(huà)呢?

就是說(shuō)

...   匹配大于等于3個(gè)字符的數(shù)據(jù)
....  匹配大于等于4個(gè)字符的數(shù)據(jù)
#查詢(xún)用戶(hù)名以字符 l開(kāi)頭的用戶(hù):^l;
#正則表達(dá)式寫(xiě)法

SELECT * FROM user WHERE username REGEXP '^l';
#sql匹配模式寫(xiě)法:
SELECT * FROM user WHERE username LIKE 'l%';
#查詢(xún)用戶(hù)名正好是三個(gè)字符的用戶(hù):^...$;
#sql匹配模式寫(xiě)法:
SELECT * FROM user WHERE username LIKE '___';
#正則表達(dá)式寫(xiě)法
SELECT * FROM user WHERE username REGEXP '^...$';

以上就是如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)模糊查詢(xún)功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI