MySQL LIKE 操作符
LIKE 操作符用于 WHERE 子句中,用于在列内搜索指定的模式。
LIKE 操作符通常结合以下两种通配符使用:
- 百分号
%
匹配零个、一个或多个任意字符 - 下划线
_
精确匹配一个任意字符
百分号和下划线还可以组合使用!
可以使用 AND
或 OR
运算符组合任意数量的查询条件
LIKE 操作符用法对照表
运算符 | 解释与说明 |
---|---|
WHERE CustomerName LIKE 'a%' |
查找所有以字母 “a” 开头 的客户名 |
WHERE CustomerName LIKE '%a' |
查找所有以字母 “a” 结尾 的客户名 |
WHERE CustomerName LIKE '%or%' |
查找所有包含 “or” 子串的客户名(任意位置) |
WHERE CustomerName LIKE '_r%' |
查找所有 第二个字母为 “r” 的客户名 |
WHERE CustomerName LIKE 'a_%' |
查找以 “a” 开头且至少2个字符 的客户名 |
WHERE CustomerName LIKE 'a__%' |
查找以 “a” 开头且至少3个字符 的客户名 |
WHERE ContactName LIKE 'a%o' |
查找所有 以 “a” 开头且以 “o” 结尾 的联系人名 |
1 | WHERE CustomerName LIKE 'a_%_%' |
通配符差异
%
匹配 任意长度字符(包括空字符串)
示例:'%son'
可匹配 “Johnson”、”Jackson”、”son”_
精确匹配 单个字符
示例:'_at'
可匹配 “cat”、”bat”,但不匹配 “that”
符号 | 解释与说明 |
---|---|
% |
匹配零个或多个任意字符 |
_ |
精确匹配一个任意字符 |
组合用法逻辑
'a_%'
= 首字母a
+ 至少1个任意字符(总长≥2)'a__%'
= 首字母a
+ 至少2个任意字符(总长≥3)
示例1:
1 | SELECT * FROM Customers |
查找所有以字母 “ber” 开头 的客户名
示例2:
1 | SELECT * FROM Customers |
以字母 “L” 开头,后接任意单个字符,接着是字母 “n”,再接任意单个字符,最后以 “on” 结尾
示例 3:NOT LIKE
:否定匹配条件
1 | SELECT * FROM Customers |
查询所有客户名称不以字母’a’开头的客户记录
使用NOT LIKE
操作符进行反向模式匹配