首頁 >後端開發 >PHP問題 >php怎麼實作模糊查詢

php怎麼實作模糊查詢

coldplay.xixi
coldplay.xixi原創
2020-08-20 09:46:473951瀏覽

php實作模糊查詢的方法:1、使用SQL匹配模式,運算元就要使用LIKE或NOT LIKE,匹配時,不區分大小寫;2、使用正規表示式匹配模式,其正規表示式出現在符合欄位的任意位置。

php怎麼實作模糊查詢

【相關學習推薦:php程式設計(影片)】

php實作模糊查詢的方法:

方法1: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%';

#方法2:正規表示式匹配模式

通配符(正規表示式)

.符合任意的單一字元

*符合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怎麼實作模糊查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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