MySQL 中的 LIKE 和 NOT LIKE
在MySQL中,LIKE
和NOT LIKE
是用于搜索数据库中匹配特定模式的数据的操作符。它们通常与%
和_
通配符一起使用,用来表示任意字符或单个字符的占位符。在本文中,我们将详细介绍LIKE
和NOT LIKE
操作符的用法,以及示例代码和运行结果。
LIKE 操作符
LIKE
操作符用于在数据库中搜索与指定模式匹配的数据。你可以使用%
通配符表示任意字符,或者使用_
通配符表示单个字符。例如,如果你想要查找所有以”J”开头的名字,可以使用以下查询:
SELECT * FROM users WHERE name LIKE 'J%';
这将返回所有名字以”J”开头的用户。
另外,你也可以在模式中使用%
通配符来表示任意字符的占位符。例如,如果你想要查找所有包含”son”这个字串的用户名,可以使用以下查询:
SELECT * FROM users WHERE name LIKE '%son%';
这将返回所有用户名中包含”son”的用户。
NOT LIKE 操作符
NOT LIKE
操作符与LIKE
操作符相反,它用于在数据库中搜索与指定模式不匹配的数据。例如,如果你想要查找所有不包含”admin”这个字串的用户名,可以使用以下查询:
SELECT * FROM users WHERE name NOT LIKE '%admin%';
这将返回所有用户名中不包含”admin”的用户。
示例代码和运行结果
假设我们有一个名为users
的表,其中包含以下数据:
id | name |
---|---|
1 | John Doe |
2 | Jane Smith |
3 | Admin123 |
4 | Tom Johnson |
5 | Sarah Adams |
现在,我们来演示如何使用LIKE
和NOT LIKE
操作符来搜索数据。首先,让我们查找所有以”J”开头的名字:
SELECT * FROM users WHERE name LIKE 'J%';
运行结果如下:
id | name |
---|---|
1 | John Doe |
2 | Jane Smith |
接下来,让我们查找所有包含”son”这个字串的用户名:
SELECT * FROM users WHERE name LIKE '%son%';
运行结果如下:
id | name |
---|---|
2 | Jane Smith |
4 | Tom Johnson |
最后,让我们查找所有不包含”admin”这个字串的用户名:
SELECT * FROM users WHERE name NOT LIKE '%admin%';
运行结果如下:
id | name |
---|---|
1 | John Doe |
2 | Jane Smith |
4 | Tom Johnson |
5 | Sarah Adams |
通过以上示例代码和运行结果,你可以了解LIKE
和NOT LIKE
操作符在MySQL中的用法。
总之,LIKE
和NOT LIKE
操作符是在MySQL中进行搜索数据时非常有用的工具,通过结合通配符的使用,你可以更精确地筛选出满足特定模式的数据。