MySQL 比较运算符

时间:2019-02-04 12:52:24  来源:igfitidea点击:

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

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

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

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

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

MySQL 比较运算符例子

示例- 等于运算符

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

例如:

SELECT *
FROM suppliers
WHERE ContactName = 'Yoshi Nagase';

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

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

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

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

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

EmployeeIDLastNameCityRegion
1DavolioSeattleNULL
2FullerTacomaWA
3LeverlingNULLNULL
4BuchananLondonLondon

在查询中使用 =运算符

SELECT EmployeeID,LastName,City,Region
FROM employees
WHERE City = Region;

结果如下:

EmployeeIDLastNameCityRegion
4BuchananLondonLondon

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

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

结果如下:

EmployeeIDLastNameCityRegion
3LeverlingNULLNULL
4BuchananLondonLondon

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

示例-不等式运算符

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

如下所示:

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

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

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

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

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

示例-大于运算符

在MySQL中大于运算符为 >:

SELECT *
FROM suppliers
WHERE SupplierID > 20;

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

示例-大于或等于运算符

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

SELECT *
FROM suppliers
WHERE SupplierID >= 20;

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

示例-小于运算符

SELECT *
FROM suppliers
WHERE SupplierID < 20;

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

示例-小于或等于运算符

SELECT *
FROM suppliers
WHERE SupplierID <>= 20;

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

示例-高级运算符

MySQL还提供了一些高级的比较运算符。包括: