1.普通的模糊查詢
SELECT 字段 FROM 表名 WHERE 字段 LIKE 條件
關於條件又可以分為四種匹配模式:
1)%表示零個或任意多個字符。
SELECT * FROM student WHERE stu_name LIKE ‘%詩%’
這樣就可以篩選出劉詩雯、王詩淼等類的人。
2)_: 表示任意單個字符、匹配單個任意字符。
SELECT * FROM student WHERE stu_name LIKE '_詩_'
這樣可以匹配到劉詩雯、劉劉詩雯雯、劉詩雯雯雯雯等等中間出現詩的名字。
3)[^ ] :表示不在括號所列之內的單個字符。
SELECT * FROM student WHERE stu_name LIKE '[^趙錢孫]詩雯'
這樣可以排除趙詩雯、錢詩雯、孫詩雯。
4)[ ]:表示括號內所列字符中的一個。
SELECT * FROM student WHERE stu_name LIKE '[趙錢孫]詩雯'
這樣可以匹配到趙詩雯、錢詩雯、孫詩雯。(類似正則表達式)
2.正則表達式,使用REGEXP和NOT REGEXP操作符
“.”匹配任何單個的字符:一個字符類“[...]”匹配在方括號內的任何字符。
“ * ”匹配零個或多個在它前面的東西: 例如[a-z] *表示隨機匹配任何數量a-z之間的字母
使用“^”和“$”匹配名字的開始和結尾
SELECT * FROM student WHERE stu_name REGEXP "^.....$";
名字包含五個字符的學生
“{n}”“重復n次”
SELECT * FROM student WHERE stu_name REGEXP "^.{3}$"; 匹配三個字的名字