一、模糊查詢
1.1 LIKE運算符
在MySQL中,可以使用LIKE運算符進行模糊查詢。LIKE運算符用于匹配字符串模式,其中可以使用通配符來表示任意字符或字符序列。
示例代碼
SELECT * FROM table_name WHERE column_name LIKE 'pattern';
table_name
:要查詢的表名column_name
:要查詢的列名pattern
:要匹配的模式
通配符
%
:表示任意字符序列(包括空字符)_
:表示任意單個字符
示例
SELECT * FROM users WHERE name LIKE '%John%';
以上示例將返回所有名字中包含"John"的用戶。
1.2 NOT LIKE運算符
NOT LIKE運算符用于排除符合指定模式的結果。
示例代碼
SELECT * FROM table_name WHERE column_name NOT LIKE 'pattern';
示例
SELECT * FROM users WHERE name NOT LIKE '%John%';
以上示例將返回所有名字中不包含"John"的用戶。
1.3 REGEXP運算符
REGEXP運算符用于基于正則表達式進行模糊查詢。正則表達式是一種強大的模式匹配工具,可以用于更復雜的模式匹配。
示例代碼
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
示例
SELECT * FROM users WHERE name REGEXP '[Jj]ohn';
以上示例將返回所有名字中包含以"J"或"j"開頭,后面跟著"ohn"的用戶。
二、正則表達式
2.1 正則表達式基礎
正則表達式是一種用于匹配字符串模式的工具。它使用一種特定的語法來描述要匹配的模式。
基本元字符
.
:匹配任意字符^
:匹配字符串的開始位置$
:匹配字符串的結束位置[]
:匹配指定字符集中的任意一個字符[^]
:匹配任意不在指定字符集中的字符*
:匹配前面的元素零次或多次+
:匹配前面的元素一次或多次?
:匹配前面的元素零次或一次|
:匹配兩個或多個表達式中的任意一個
示例代碼
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
2.2 REGEXP運算符
在MySQL中,可以使用REGEXP運算符基于正則表達式進行模糊查詢。
示例代碼
SELECT * FROM table_name WHERE column_name REGEXP 'pattern';
示例
SELECT * FROM users WHERE name REGEXP '^[A-Za-z]+$';
以上示例將返回所有名字只包含字母的用戶。
2.3 RLIKE運算符
RLIKE運算符是REGEXP運算符的同義詞,可以使用RLIKE代替REGEXP進行正則表達式匹配。
示例代碼
SELECT * FROM table_name WHERE column_name RLIKE 'pattern';
示例
SELECT * FROM users WHERE name RLIKE '^[A-Za-z]+$';
以上示例將返回所有名字只包含字母的用戶。
參考資料
- MySQL官方文檔:Pattern Matching
- MySQL官方文檔:Regular Expressions