MySQL like和not like查询语句
在MySQL中,like和not like是两个常用的模糊查询语句,通过它们可以实现对文本类型数据的模糊匹配。本文将详细介绍如何在一个MySQL查询中同时使用like和not like。
阅读更多:MySQL 教程
LIKE语句
LIKE语句用于查找某种模式的字符串,可以包含%和两种通配符,其中%代表任意字符,代表单个字符。下面是一个例子:
SELECT * FROM user WHERE name LIKE '%John%';
这个查询语句将查找所有name字段中包含“John”子串的记录。
NOT LIKE语句
NOT LIKE语句与LIKE语句相反,用于查找不符合某种模式的字符串。语法与LIKE类似,只需要在LIKE后面加上NOT关键字即可。
SELECT * FROM user WHERE name NOT LIKE '%Smith%';
这个查询语句将查找所有name字段中不包含“Smith”子串的记录。
同时使用LIKE和NOT LIKE
在某些情况下,我们需要同时使用LIKE和NOT LIKE来进行查询。例如,我们需要查找所有name字段中包含“John”子串但不包含“Smith”子串的记录,可以使用如下的查询语句:
SELECT * FROM user WHERE name LIKE '%John%' AND name NOT LIKE '%Smith%';
这个查询语句将同时使用LIKE和NOT LIKE,查找所有name字段中包含“John”子串且不包含“Smith”子串的记录。注意,在这个查询中,我们使用了AND逻辑运算符将两个条件连接起来。
例子说明
下面是一个例子,我们假设有一个user表,其中包含name和age两个字段:
name | age |
---|---|
John | 18 |
Smith | 20 |
Alice | 22 |
Robert | 25 |
Linda | 30 |
假设我们需要查找所有年龄大于20岁但不包含“Smi”子串的记录,可以使用如下的查询语句:
SELECT * FROM user WHERE age > 20 AND name NOT LIKE '%Smi%';
这个查询语句将返回以下结果:
name | age |
---|---|
Alice | 22 |
Robert | 25 |
Linda | 30 |
总结
本文介绍了MySQL中的like和not like查询语句,以及如何在一个查询中同时使用它们来实现复杂的模糊查询。使用like和not like可以方便地进行文本匹配,适用于很多应用场景。掌握这些查询语句的用法,将有助于我们更好地进行数据查询和分析。