模糊查詢
上篇文章我們簡單介紹了單表查詢中的條件查詢,裏面介紹了一些精確查詢和範圍查詢的基本方法,但當我們想要查詢一些具有模糊條件的數據時,如:我們要在一張學生表中查詢所有姓張的學生,或者我們想要查詢含有某個字母或數字的數據時,使用上篇文章中介紹的幾種方法就沒有辦法了,所以爲了解決這個問題,今天我們來介紹一下使用LIKE
關鍵字進行模糊查詢。
在介紹LIKE
關鍵字之前,先來了解兩個比較常用的通配符%
、_
(後面會介紹MySQL提供的正則模式的模式匹配,先介紹兩個最常用的):
“%” 代表的是任意長度的字符串,例如:
n%
就代表以n
開頭的任意長度的字符串;“_” 代表的是任意單個字符,就是有幾個
_
就代表有多少個字符,例如n__
就代表以n
開頭的長度爲3的字符串;總體來說,這兩個的區別在於匹配的字符串的長度,
%
匹配多個字符,而_
僅匹配一個字符。
下面我們介紹幾個使用模糊查詢的例子:
1.查詢姓名由5個字母構成的學生記錄
SELECT *
FROM stu
WHERE sname LIKE '_____';
2.查詢姓名由5個字母構成,並且第5個字母爲“a”的學生記錄
SELECT *
FROM stu
WHERE sname LIKE '____a';
3.查詢姓名以“張”開頭的學生記錄
SELECT *
FROM stu
WHERE sname LIKE '張%';
4.查詢姓名中第2個字爲“一”的學生記錄
SELECT *
FROM stu
WHERE sname LIKE '_一%';
5.查詢姓名中包含“一”字的學生記錄
SELECT *
FROM stu
WHERE sname LIKE '%一%';