MySQL LIKE 运算符

MySQL LIKE 运算符用于对表执行模糊搜索。LIKE 运算符使用通配符来提取与指定模式匹配的记录。

例如,如果您忘记了产品拼写或描述,那么可以使用 LIKE 运算符的通配符来查找匹配的记录。以下是支持的通配符。

通配符描述
%使用此项匹配零个或多个字符。
_使用此项精确匹配一个字符。

在我们深入了解 LIKE 运算符示例中的通配符之前,让我先向您展示其语法。

MySQL Like 运算符语法

此通配符的语法是

SELECT Columns
FROM Table
WHERE Column_Name LIKE Wildcard_Expression ESCAPE 'escape_charcater'

通配符表达式可能包含 % 或 _。如果您想转义任何特殊字符,请使用默认的 \ 或任何字符。如果您使用除 \ 之外的字符,则在 ESCAPE 关键字后指定该字符。对于此 LIKE 运算符的演示,我们将使用下面显示的数据。

Customer Table

MySQL Like 运算符通配符 % 示例

通配符 % (百分号) 表示零个或多个字符。例如,下面的 % 通配符查询返回所有名字以字母 R 开头的员工。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
 FROM customer
 WHERE `First Name` LIKE 'R%';
LIKE Wildcard% 2

此通配符查询示例显示了职业以字母 L 结尾的员工。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
 FROM customer
 WHERE Occupation LIKE '%l';
MySQL LIKE Wildcard Operator 3

多个值示例 2

以下 LIKE 多个值查询选择学历以字母 B 开头并以 s 结尾的员工。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
 FROM customer
 WHERE Qualification LIKE 'B%s';
Multiple Characters or Values in LIKE Wildcard Percentage 4

此多值示例查询返回学历在任何位置包含 d 和 e 的客户。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE Qualification LIKE '%d%e';
LIKE Operator 5

MySQL Like 通配符 _ 运算符示例

通配符下划线符号 (_) 表示单个字符。例如,以下查询选择学历第二个字母为 a 的员工。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE Qualification LIKE '_a%';
Like Wildcard _ Example 6

此查询显示了学历第二个字母是 a 且第四个字母是 t 的客户。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE Qualification LIKE '_a_t%';
LIKE Operator 7

下面的查询显示了姓氏至少有六个字符的员工。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE  `Last Name` LIKE N'_%_%_%_%_%_%';
Using Like Wildcard Underscore and Percentage Example 8

Like 转义示例

到目前为止,我们已经看到了用于显示一个或多个字符的通配符。但是,如果您的列包含一些特殊字符,例如 _、% 或 $,则必须使用转义字符。为此,我们将使用下面显示的数据。

LIKE Escape 9

从上面的截图中可以看出,我们的数据在“名字”列中包含 _ 和 % 符号。在 MySQL Like 运算符中,\ 是转义任何特殊字符的默认转义字符。

例如,以下查询使用 \ 转义名字中的 _。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE FirstName LIKE '%\_%';
LIKE Escape Character 10

您还可以使用 ESCAPE 关键字将自己的字符用作转义字符。下面所示的 Like 转义查询使用 # 作为转义字符来跳过 _ 符号。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE FirstName LIKE '%#_%' ESCAPE '#';
Escape 11

这次我们使用 $ 作为转义字符来转义“电子邮件地址”列中的 @ 符号。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
 FROM customer
 WHERE EmailAddress LIKE '%$@%' ESCAPE '$';
Escape 12

以下查询转义了“名字”中的 % 符号。

SELECT CustomerKey,
       FirstName,
       LastName,
       BirthDate,
       EmailAddress,
       `Yearly Income`,
       Profession
 FROM customer12
 WHERE FirstName LIKE '%\%%';
Escape 13

Like 通配符命令提示符示例

这只是一个示例,向您展示命令提示符中的 Like 运算符。

LIKE Operator Wildcard Command Prompt Example 14