MySQL NOT BETWEEN 操作符

MySQL NOT BETWEEN 操作符返回不在给定两个值或范围之间的记录。NOT BETWEEN 操作符与 BETWEEN 操作符正好相反。

例如,如果您想查找 2018 年的销售额。但是,如果您可能不关心四月和五月的销售额,那么使用 NOT BETWEEN 四月和五月作为值。

MySQL NOT BETWEEN 操作符语法

NOT BETWEEN 操作符的基本语法是:

SELECT Column_Names 
FROM Table_Name
WHERE Column_Value NOT BETWEEN Value1 AND Value2

NOT BETWEEN 操作符显示不在 Value1 和 Value2 之间(包括它们)的记录。这意味着 Column_Value <= Value1 且 Column_Value >= Value2。

MySQL NOT BETWEEN 示例

这个简单的例子展示了 NOT BETWEEN 对数值数据的操作功能。在第一个语句中,3.2 不在 1 和 3 之间,22 不在 1 和 9 之间,因此返回 1。在下一个语句中,5 在 1 和 7 之间,2 在 1 和 9 之间,因此返回 0。

SELECT 3.2 NOT BETWEEN 1 AND 3, 22 NOT BETWEEN 1 AND 9;

SELECT 5 NOT BETWEEN 1 AND 7, 2 NOT BETWEEN 1 AND 9;

SELECT 2 NOT BETWEEN 3 AND 1, 7 NOT BETWEEN 9 AND 1;
MySQL NOT BETWEEN Operator 1

在这个 MySQL 操作符示例中,我们将向您解释如何在此 NOT BETWEEN 操作符上使用字符串数据。

第一个 MySQL 语句返回 1,因为 d 不在 a 和 c 之间,t 不在 u 和 g 之间。在第二个语句中,它将字符串 10 转换为整数,并测试 2 是否不在 4 和 10 之间。

SELECT 'd' NOT BETWEEN 'a' AND 'c', 't' NOT BETWEEN 'u' AND 'g';

SELECT 2 NOT BETWEEN 4 AND '10', 7 NOT BETWEEN 5 AND '10';

SELECT 2 NOT BETWEEN 5 AND 'Hello';
NOT BETWEEN Operator 2

MySQL NOT BETWEEN 操作符在数字和字符串数据上的示例

为了演示 NOT BETWEEN 操作符,我们使用此 Customer 表。下图显示了该表中的数据

Customer Table

以下操作符查询返回收入不在 70000 和 90000 之间的客户。或者,收入小于 70000 且大于 90000 的客户。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE Income NOT BETWEEN 70000 AND 90000;
NOT BETWEEN Operator 4

此 MySQL NOT BETWEEN 操作符示例返回名字不在 Gail 和 Peter 之间的客户。它返回名字以字母 G 之前和 P 之后的那些名字。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE `First Name` NOT BETWEEN 'Gail' AND 'Peter';

提示:我们也可以使用单个字符,因为此 NOT BETWEEN 操作符将第一个字符作为参照。

NOT BETWEEN Operator 5

NOT BETWEEN 日期示例

在此 NOT BETWEEN 日期示例中,我们返回所有雇佣日期不在 2009-01-01 和 2013-01-15 之间的客户。

SELECT EmpID, 
       `First Name`,
       `Last Name`,
       Qualification,
       Occupation,
       Income,
       Sales,
       HireDate
FROM customer
WHERE HireDate  NOT BETWEEN '2009-01-01 ' AND '2013-01-15';
Dates NOT BETWEEN 6