使用mysql模糊查詢主要點:LIKE關鍵字和這兩個通配符配合使用:
_:任意一個字符,
%:任意0或多個字符。
那麼我們立即上手吧!
一、使用LIKE和通配符 _
場景1:我要搜索一個名字,可我都忘記叫什麼了,只知道是3個字符的,那怎麼搜索呢(三個下劃線 _)
代碼示例
SELECT * FROM test WHERE name LIKE'___';
運行結果
(沒錯,一個下劃線 _ 對應一個字符)
場景2:我要搜索一個名字總共是3個字符的,可是我只記得第一個字符是 c 後面的忘記了,那怎麼搜索呢
代碼示例
SELECT * FROM test WHERE name LIKE'c__';
運行結果
場景3:我要搜索一個名字總共是7個字符的,可是我只記得中間個字符 剽悍 前面和後面忘記了,那怎麼搜索呢
SELECT * FROM test WHERE name LIKE'__剽悍___';
運行結果
場景4:我要搜索一個名字總共是7個字符的,可是我只記得最後兩個個字符 種子 前面忘記了,那怎麼搜索呢
代碼示例
SELECT * FROM test WHERE name LIKE'_____種子';
運行結果
上面使用下劃線 _ 可以發現一個核心三個點:
一個核心:
需要確定想要搜索的個數,否則查詢不到(簡單的說就是需要一個信息:知道字符個數)
三個點:
1.不管匹配字母還是中文都是可以的,因爲""雙引號代表字符嘛。
2.一個下劃線 _ 對應一個字符,如果想搜索某個數據,那麼 _ 與字符個數要一致。
3.匹配的時候如果還知道哪幾位的是什麼字符,可以讓結果更精確。
二、使用LIKE和通配符 %
場景1:我要搜索一個名字只知道開頭是一的字,後面是什麼字,有多少個字符都不知道,那怎麼搜索呢
代碼示例
SELECT * FROM test WHERE name LIKE'一%';
運行結果
場景2:那反過來我要搜索一個名字只知道最後一個是子的字,前面是什麼字,有多少個字符也都不知道,那怎麼搜索呢
代碼示例
SELECT * FROM test WHERE name LIKE'%子';
運行結果
場景3: 那來個折中的,我要搜索一個名字只知道中間其中一個是悍的字,前面是什麼字,後面有多少個字符通通都不知道,那怎麼搜索呢
代碼示例
SELECT * FROM test WHERE name LIKE'%悍%';
(但是有一點就是這上面左右兩個%%,中間一個字符【只要知道某一個字符,就可以匹配,不需要確定該字符是否在中間】)
運行結果
上面使用下劃線 % 比較好理解,但是有一個關鍵點:只要知道其中某個一個字符就可以匹配的意長度的字符。(簡單的說需要一個信息:知道某個字符)
三、 _ 和 % 的結合使用提高精確:
還是來個場景: 我要搜索一個名字,第三個字是剽字,前兩個字不知道,後面有多少個字是什麼當然也不知道,但是我們比前面所演示的知道的信息多一些,那麼我們的查詢結果也會更加精確!
代碼示例
SELECT * FROM test WHERE name LIKE'__剽%';
最後:
模糊查詢當然不只 % 和 _ 這兩個,由於篇幅原因下次一起繼續來實踐和理解。數據庫好玩的地方不只是結合後端語言,單獨拿出來也有很多很有意思的事情,下次也一起發一篇用SQL符號提高我們平常搜索的效率。
那就點贊關注一下哦!
哈哈…不強求啦,只是你可以第一時間收到😜