MySQL多个条件not like
在使用MySQL进行数据查询时,经常会遇到需要同时排除多个条件的情况。其中,not like
是一种常用的条件筛选方式,可以用于查询不匹配某些特定模式的数据。在本文中,我们将详细介绍如何在MySQL中使用not like
来排除多个条件。
什么是not like
在MySQL中,like
是一种用于模糊匹配字符串的操作符。它通常与%
通配符一起使用,用于匹配一定模式的字符串。而not like
则是like
的相反操作符,用于排除匹配某一模式的数据。
实例演示
假设我们有一个名为students
的表,包含了学生的姓名和年龄信息。我们希望查询出所有年龄不为18岁及其以上的学生。这时就可以使用not like
来实现。
创建表
首先,我们创建一个名为students
的表,并插入一些学生数据。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);
INSERT INTO students (name, age) VALUES ('Alice', 17);
INSERT INTO students (name, age) VALUES ('Bob', 18);
INSERT INTO students (name, age) VALUES ('Charlie', 19);
INSERT INTO students (name, age) VALUES ('David', 20);
INSERT INTO students (name, age) VALUES ('Eve', 21);
查询数据
现在,我们可以使用not like
来查询年龄不为18岁及其以上的学生。
SELECT * FROM students WHERE age not like '18%';
运行上述查询语句后,将会得到如下结果:
+----+---------+-----+
| id | name | age |
+----+---------+-----+
| 1 | Alice | 17 |
| 3 | Charlie | 19 |
| 4 | David | 20 |
| 5 | Eve | 21 |
+----+---------+-----+
从结果中可以看到,只有年龄不为18岁及其以上的学生被查询出来了。
同时排除多个条件
有时候我们需要同时排除多个条件,这时可以使用not like
结合and
或or
来实现。例如,我们想查询年龄既不是18岁也不是20岁的学生。
SELECT * FROM students WHERE age not like '18%' AND age not like '20%';
运行上述查询语句后,将会得到如下结果:
+----+---------+-----+
| id | name | age |
+----+---------+-----+
| 1 | Alice | 17 |
| 3 | Charlie | 19 |
| 5 | Eve | 21 |
+----+---------+-----+
从结果中可以看到,只有年龄既不是18岁也不是20岁的学生被查询出来了。
总结
通过本文的介绍,我们了解了在MySQL中如何使用not like
来排除单个和多个条件。在实际应用中,可以根据需要灵活运用not like
操作符,进行数据查询和筛选。