MariaDB NOT-IN 运算符的用法与实例

发布于

MariaDB NOT IN 运算符用于检查某个值是否不包含在指定的值列表中。它常用于查询操作,以排除列表中的值,特别适用于需要过滤掉一组特定数据的场景。

语法

MariaDB NOT IN 运算符的语法如下:

value NOT IN (value1, value2, ..., valueN)

这里的 value 是要检查的值,而 (value1, value2, ..., valueN) 是一个值的列表。如果 value 不在这个列表中,则表达式返回 TRUE;如果 value 在列表中,则返回 FALSE

实例

基本使用

假设我们要检查数字 7 是否不在列表 [1, 2, 3, 4, 5, 6] 中:

SELECT 7 NOT IN (1, 2, 3, 4, 5, 6);

以下是该语句的输出:

+-----------------------------+
| 7 NOT IN (1, 2, 3, 4, 5, 6) |
+-----------------------------+
|                           1 |
+-----------------------------+

这表示数字 7 不在指定的列表中。

筛选特定记录

employees 表中,我们想要找出 department_id 不在 [3, 4, 7] 这三个部门中的员工:

SELECT * FROM employees WHERE department_id NOT IN (3, 4, 7);

结合子查询

我们可以结合子查询来使用 NOT IN,例如,找出不是经理的员工:

SELECT * FROM employees WHERE id NOT IN (SELECT manager_id FROM departments);

与 IN 运算符对比

对比 INNOT IN 的结果:

SELECT 7 IN (1, 2, 3, 4, 5, 6), 7 NOT IN (1, 2, 3, 4, 5, 6);

以下是该语句的输出:

+-------------------------+-----------------------------+
| 7 IN (1, 2, 3, 4, 5, 6) | 7 NOT IN (1, 2, 3, 4, 5, 6) |
+-------------------------+-----------------------------+
|                       0 |                           1 |
+-------------------------+-----------------------------+

相关函数

以下是几个与 NOT IN 运算符相关的函数:

  • MariaDB IN 运算符用来检查值是否在列表中。
  • MariaDB EXISTS 用来检查子查询是否返回至少一行数据。

结论

MariaDB NOT IN 运算符是 SQL 查询中非常有用的工具,它可以帮助我们有效地排除不需要的数据。通过上述实例,我们可以看到 NOT IN 运算符在实际应用中的灵活性和便利性。无论是在复杂的查询中,还是在数据分析和处理中,NOT IN 都能提供强大的数据过滤功能。