MySQL 比较运算符


本MySQL教程探讨了用于测试相等性和不相等性的所有比较运算符,以及更高级的运算符。

本教程中我们将学习MySQL中的比较运算符, 在WHERE子句中使用比较运算符来确定要选择的记录。

下面是MySQL中的比较运算符的列表:

比较运算符 说明
= 等于
<=> 相等(可安全比较NULL值)
<> 不等于
!= 不等于
> 大于
>= 大于或等于
< 小于
<= 小于或等于
IN 匹配列表中的值
NOT 条件取反

BETWEEN值在指定范围内
IS NULL是NULL值
IS NOT NULL非NULL值
LIKE| 与%和_的模式匹配
EXISTS如果子查询至少返回一行,则为TRUE

MySQL 比较运算符例子

示例- 等于运算符

在MySQL中,可以使用=操作符来检测查询中的相等性。=操作符只能测试不为NULL的值是否相等。 即不能写成 ContactName = NULL。

例如:

1
2
3
SELECT *
FROM suppliers
WHERE ContactName = 'Yoshi Nagase';

SELECT语句将返回suppliers表中ContactName等于Yoshi Nagase的所有行。

示例-相等运算符(可安全比较NULL值)

由于 =运算符仅比较那些非NULL值,因此与NULL值一起使用并不安全。为了克服此限制,MySQL添加了 <=>运算符,以方便您测试NULL和非NULL值的相等性。

下面演示了 =运算符<=>运算符之间的区别。

假设我们在MySQL中有一张employees的表,其中的数据如下:

EmployeeID LastName City Region
1 Davolio Seattle NULL
2 Fuller Tacoma WA
3 Leverling NULL NULL
4 Buchanan London London

在查询中使用 =运算符

1
2
3
SELECT EmployeeID,LastName,City,Region
FROM employees
WHERE City = Region;

结果如下:

EmployeeID LastName City Region
4 Buchanan London London

使用 <=>运算符重新查询:

1
2
3
SELECT EmployeeID,LastName,City,Region
FROM employees
WHERE City <>=> Region;

结果如下:

EmployeeID LastName City Region
3 Leverling NULL NULL
4 Buchanan London London

查询返回contacts表中所有City等于Region的行,包括值都为NULL的行。

示例-不等式运算符

在MySQL中,可以使用 <>或!=运算符来指定查询中的不相等条件。

如下所示:

1
2
3
SELECT *
FROM suppliers
WHERE ContactName <> 'Yoshi Nagase';

SELECT语句将从contacts表中返回所有ContactName不等于Yoshi Nagase的行。

使用 !=运算符,如下所示:

1
2
3
SELECT *
FROM suppliers
WHERE ContactName != 'Yoshi Nagase';

这两个查询返回的结果是相同的。

示例-大于运算符

在MySQL中大于运算符为 >:

1
2
3
SELECT *
FROM suppliers
WHERE SupplierID > 20;

查询将返回suppliers表中SupplierID大于20的所有行。

示例-大于或等于运算符

在MySQL中大于或等于运算符为 >=:

1
2
3
SELECT *
FROM suppliers
WHERE SupplierID >= 20;

查询将返回suppliers表中SupplierID大于或者等于20的所有行。

示例-小于运算符

1
2
3
SELECT *
FROM suppliers
WHERE SupplierID < 20;

查询将返回suppliers表中SupplierID 小于20的所有行。

示例-小于或等于运算符

1
2
3
SELECT *
FROM suppliers
WHERE SupplierID <>= 20;

查询将返回suppliers表中SupplierID小于或者等于20的所有行。


原文链接:https://codingdict.com/