模糊查詢的方法:1、使用SQL匹配模式,操作符使用“LIKE”或“NOT LIKE”,匹配時,不區分大小寫;2、使用正規表示式匹配模式,而操作符使用“REGEXP”或“NOT REGEXP”,正規表示式可出現在符合欄位的任意位置。
本教學操作環境:windows7系統、PHP7.1&&mysql8版本、Dell G3電腦。
在建置網站的時候,常常會使用到使用關鍵字來尋找網站某些資源的這個功能,這時候我們往往需要用到模糊查詢。今天學習了一下PHP的模糊查詢,現在來總結一下。
以上為模糊查詢的流程圖。
為了方便演示,需要建立一個簡單地資料庫表。
KEY ‘username’(‘username’)
是索引,非常重要。
索引的好處:如果按照某個條件去檢索數據,如果這個條件欄位沒有建立索引,查詢的時候會遍歷整張表,如果你建立了索引,查詢的時候就會根據索引來查詢,進而提升查詢效能。
傳回結果有且僅有一條SQL查詢
應用程式場景:使用者註冊 登陸
注意:以上2種查詢傳回的結果可能為空。
模糊查詢技術支援2種匹配格式: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 '%eusername LIKE '%eusername LIKE ';
③#查詢使用者名稱包含某個字元的使用者
#查詢使用者名稱包含字元'o'的使用者
# % o%
SELECT * FROM user WHERE username LIKE '%o%'; (常用)
# ④#查詢使用者名稱長度為30
#⑤#兩種通配符的結合使用
正規表示式符合模式(不建議使用)
## [. .] 匹配中括號的任意字元
[abc]符合字元a b或c
[a-z ##
[0-9]*符合任何數量的任何數字
[a-z]* 搭配任何數量的字母## ## ^a表示以字母a開頭
$ 表示以某個字元或字串結尾
則為$$$$$
1使用的運算元
REGEXP或
NOT REGEXP(RLIKE
或NOT RLIKE
#)#如果使用正規表示式來匹配,則其模式有別於SQL模式
解釋:如以下範例
#查詢使用者名稱以字元l 開頭的使用者
SQL匹配模式 l%
正規表示式 ^l
# SELECT * FROM user WHERE username REGEXP '^l';
以上是PHP如何進行模糊查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!