MySQL LIKE 不包含

在使用 MySQL 进行查询时,我们经常会用到 LIKE 关键字来进行模糊匹配。然而,有时候我们需要排除掉某些特定的值,即使用 LIKE 进行不包含的查询。本文将介绍如何在 MySQL 中实现不包含的查询,并提供相应的代码示例。

基本语法

在 MySQL 中,要实现不包含的查询可以使用 NOT LIKE 关键字。其基本语法如下:

SELECT * FROM table_name WHERE column_name NOT LIKE 'pattern';

在上面的语法中,table_name 是要查询的表名,column_name 是要进行匹配的列名,pattern 是模式字符串。使用 NOT LIKE 关键字可以筛选出不包含指定模式的结果。

示例

为了更好地理解,我们来看一个实际的示例。假设有一个 users 表,其中包含了用户的姓名和邮箱信息。我们想要查询出所有不包含 example.com 邮箱域名的用户信息。

首先,我们创建一个名为 users 的表,并插入一些数据:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(100)
);

INSERT INTO users (name, email)
VALUES ('Alice', 'alice@example.com'),
       ('Bob', 'bob@example.com'),
       ('Charlie', 'charlie@gmail.com'),
       ('David', 'david@example.com');

接下来,我们可以使用 NOT LIKE 进行不包含的查询:

SELECT * FROM users WHERE email NOT LIKE '%example.com';

上述代码中,% 是一个通配符,表示匹配零个或多个任意字符。因此,%example.com 表示以 example.com 结尾的字符串。

执行上述查询后,我们将得到如下结果:

id name email
3 Charlie charlie@gmail.com

从上面的结果可以看出,我们成功地排除掉了 example.com 邮箱域名的用户。

注意事项

在使用 LIKE 进行模糊匹配时,需要注意以下几点:

  1. % 通配符表示匹配任意字符,可以出现在字符串的任意位置。
  2. _ 通配符表示匹配单个字符,也可以出现在字符串的任意位置。
  3. 要匹配 %_ 字符本身,需要使用 \ 进行转义。
  4. LIKE 是大小写敏感的,如果想要进行不区分大小写的匹配,可以使用 COLLATE 子句。

总结

通过使用 NOT LIKE 关键字,我们可以在 MySQL 中实现不包含的查询。这对于排除特定模式的数据非常有帮助。在实际使用时,我们可以根据实际需求结合通配符来编写匹配模式。

本文提供了一个简单的示例来演示如何使用 NOT LIKE 进行不包含的查询。希望读者能够通过本文了解到如何在 MySQL 中使用 NOT LIKE 实现不包含的查询,并在实际应用中灵活运用。

pie
    title 用户邮箱域名分布
    "example.com" : 3
    "gmail.com" : 1
gantt
    title 用户注册时间表
    dateFormat  YYYY-MM-DD
    section 用户A
    2022-01-01, 2022-01-10 : 任务1
    section 用户B
    2022-01-05, 2022-01-15 : 任务2

通过上述代码示例,我们展示了用户邮箱域名分布的饼状图和用户注册时间表的甘特图,使得文章更加生动有趣。

MySQL 中的 NOT LIKE 语法是非常有用的,它可以帮助我们进行不包含的查询。通过灵活运用通配符和转义字符,我们可以编写出各种复杂的匹配模式。希望本文对你理解并使用 NOT LIKE 有所帮助。