MySQL NOT LIKE 运算符

2025 年 9 月 8 日 | 6 分钟阅读

MySQL 提供了一种查找与特定值匹配或不匹配的记录的方法。当我们需要查找需要在电子表格上编辑或报告的记录时,此功能非常有用。

MySQL 中的 NOT LIKE 运算符用于模式匹配。它**将列与给定值进行比较,并返回与 NOT LIKE 子句中的值不匹配的结果**。如果语句找到匹配项,它将返回 0。否则,它将返回 1。我们可以使用此运算符执行 LIKE 运算符的**否定**。此语句的主要优点是使用通配符字符搜索一系列值或与模式匹配的值。

在本文中,我们将详细解释 MySQL NOT LIKE 运算符的概念。

语法

以下是在 MySQL 中使用此运算符的基本语法

在上面的语法中,

  • SELECT 语句用于从表中检索数据。
  • table_name 定义从中检索数据的表的名称。
  • columnname 用于比较值。
  • NOT LIKE 运算符用于模式匹配。
  • Pattern 表示我们正在测试字符串的正则表达式。可选的 ESCAPE 子句用于指定转义字符。如果我们不指定此子句,默认情况下它为 \。

上述运算符等效于以下语法

此语法通常与 **SELECT** 语句一起使用,如下所示

让我们通过示例了解此运算符在 MySQL 中的工作原理。

示例

以下语句是 NOT LIKE 运算符最基本的示例。在这里,我们只**使用了一个字符串并比较**输入字符串的任何部分是否与模式匹配以获取结果。

输出:以下是此示例的输出。

MySQL NOT LIKE Operator

如果我们要转义任何**通配符字符**(_ 和 %),我们需要使用**反斜杠**字符(\)。请参阅下面的语句,我们将使用和不使用转义字符进行搜索

输出:以下是此示例的输出。

MySQL NOT LIKE Operator

假设我们有一个名为 **student_info** 的表,其中包含以下数据。我们将基于此表数据演示各种示例。

MySQL NOT LIKE Operator

如果我们要获取**学生姓名不以字母“A”开头**的**学生详细信息**,我们可以使用以下语句

**解释:** 执行上述查询时,它将从“student_info”表中列出 stud_name 的详细信息,其中学生姓名不以字母“A”开头,后跟任意数量的字母。

**输出:** 执行语句后,我们将得到所需的结果。请参阅下面的输出

MySQL NOT LIKE Operator

以下 MySQL 语句从 student_info 表中返回**科目名称**与 LIKE 运算符指定的模式相似的行

我们将得到以下输出,其中我们可以看到语句不返回包含上述模式的记录。

MySQL NOT LIKE Operator

如果我们要获取**学生科目名称不以字符“s”结尾**的**学生详细信息**,我们可以使用以下语句来实现

执行此语句后,我们将得到所需的结果

MySQL NOT LIKE Operator

以下示例展示了**如何在数值表达式中使用 NOT LIKE 运算符**

输出:以下是此示例的输出。

MySQL NOT LIKE Operator

MySQL NOT LIKE 运算符与 DELETE 语句

考虑 Teacher 表,其中包含以下信息。如果我们要从表中删除电子邮件地址不以 tpointtech.com 结尾的记录。

TIDT_Name资格验证 (Qualification)Email_ID
1AnshuBCAanshu@gmail.com
2HarshitaMCAharshita@tpointech.com
3拉曼 (Raman)Mtechraman@tpointech.com
4RubyBCAruby@tpointech.com
5SumanMCAsuman@tpointech.com

语法

示例

**解释:** 执行上述 delete 语句时,它将从表中删除电子邮件地址不以 tpointtech.com 结尾的记录。

如果您想检查记录是否已删除,请执行以下语句。

**输出:** 运行此查询后,表的输出如下所示。

TIDT_Name资格验证 (Qualification)Email_ID
2HarshitaMCAharshita@tpointech.com
3拉曼 (Raman)Mtechraman@tpointech.com
4RubyBCAruby@tpointech.com
5SumanMCAsuman@tpointech.com

MySQL NOT LIKE 运算符与 Update 语句

考虑 Teacher 表,其中包含以下信息。如果我们要将资格更新为“MCA”,其中 T_Name 不以“R”开头。

TIDT_Name资格验证 (Qualification)Email_ID
1AnshuBCAanshu@gmail.com
2HarshitaMCAharshita@gmail.com
3拉曼 (Raman)Mtechraman@gmail.com
4RubyBCAruby@gmail.com
5SumanMCAsuman@gmail.com

语法

示例

**解释:** 执行上述更新查询时,它将把表中所有电子邮件地址以 gmail.com 结尾的记录更新为 tpointtech.com。

**输出:** 运行此查询后,表的输出如下所示。

TIDT_Name资格验证 (Qualification)Email_ID
1AnshuMCAanshu@tpointech.com
2HarshitaMCAharshita@tpointech.com
3拉曼 (Raman)Mtechraman@tpointech.com
4RubyBCAruby@tpointech.com
5SumanMCAsuman@tpointech.com

多个 NOT LIKE 运算符

在 MySQL 中,NOT LIKE 运算符也可以与多个值一起使用,以在单个查询中匹配不同的模式。当根据多个条件过滤列时,这可能很有用。

以包含以下信息的 "Teacher" 表为例。

TIDT_Name资格验证 (Qualification)Email_ID
1AnshuBCAanshu@gmail.com
2HarshitaMCAharshita@tpointech.com
3拉曼 (Raman)M.Techraman@tpointech.com
4RubyBCAruby@tpointech.com
5SumanMCAsuman@tpointech.com

如果要从 Teacher 表中选择所有 T_Name 不以“R”开头或 Qualification 不等于“M.Tech”的记录。

语法

示例

输出:运行此查询后,下面是表的输出。

TIDT_Name资格验证 (Qualification)Email_ID
1AnshuBCAanshu@gmail.com
2HarshitaMCAharshita@tpointech.com
5SumanMCAsuman@tpointech.com

MySQL NOT LIKE 运算符常见问题

1. 列出 MySQL NOT LIKE 运算符的一些功能?

**答案:** 以下是 MySQL NOT LIKE 运算符的一些功能。

  • 它用于查找与特定模式不匹配的行。
  • 它否定了 LIKE 运算符的功能
  • 它可以与 AND 或 OR 等其他比较运算符结合使用,以创建复杂的过滤条件。

2. 列出使用 MySQL NOT LIKE 运算符时遇到的一些错误?

**答案:** 以下是使用 MySQL NOT LIKE 运算符时遇到的错误。

  • 这确保了与 NOT LIKE 运算符一起使用的模式具有有效的语法,否则可能会导致语法错误。
  • 使用 NOT LIKE 运算符时,请注意排除您想要的行。