MySQL教程 MySQL教程MySQL 连接MySQL 查看数据库MySQL 创建数据库MySQL 修改数据库MySQL 删除数据库MySQL 选择数据库MySQL 数据类型MySQL存储引擎MySQL 数据表的增删改查MySQL 表数据增删改查操作MySQL 条件子句MySQL 清空表记录MySQL 模糊查询MySQL 处理重复数据MySQL 别名MySQL 限制查询结果数量Mysql 查询结果排序MySQL 范围查询MySQL 空值查询MySQL 查询结果合拼MySQL 分组MySQL 筛选分组MySQL 表连接MySQL NULL值处理MySQL 子查询MySQL 正则表达式MySQL 视图MySQL 索引MySQL 事务MySQL 数据库备份(导出)/还原(导入)MySQL安装 MySQL Windows版下载教程MySQL windows系统安装教程MySQL windows系统简单的安装教程MySQL Linux系统安装教程MySQL Linux系统下载教程MySQL Linux系统简单的安装教程配置MySQL环境变量

MySQL 空值查询

MySQL中的IS NULL语句是一种用于检查某个字段是否为NULL的操作。IS NULL用于在查询中筛选出具有'NULL'值的记录。相反如果想查询不为NULL值可以使用IS NOT NULL语句空值不同于 0,也不同于空字符串。

语法

MySQL中IS NULL语句的语法如下:

<列名> IS [NOT] NULL

<>是中文解释。[]为可选的。语法说明:其中,<列名>用于选择要查询的列, IS NULL表示要检查的字段为NULL值。IS NOT NULL表示字段不为NULL的值。

案例

让我们通过一些示例来了解IS NULL语句的实际应用。

获取案例新建表格和插入数据语句

这是详细信息的内容。

DROP TABLE IF EXISTS `sales`;
CREATE TABLE `sales` (
  `Product` varchar(50) COLLATE utf8_unicode_ci DEFAULT '',
  `Quantity` int(11) DEFAULT NULL,
  `Price` decimal(10,2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `sales` VALUES ('Apple', '10', '10.00');
INSERT INTO `sales` VALUES ('Banana', '5', '2.00');
INSERT INTO `sales` VALUES ('Apple', '8', '12.00');
INSERT INTO `sales` VALUES ('Banana', '3', '3.00');
INSERT INTO `sales` VALUES ('', null, '5.00');


原始数据

mysql> select * from sales;
+---------+----------+-------+
| Product | Quantity | Price |
+---------+----------+-------+
| Apple   |       10 | 10.00 |
| Banana  |        5 |  2.00 |
| Apple   |        8 | 12.00 |
| Banana  |        3 |  3.00 |
|         |     NULL |  5.00 |
+---------+----------+-------+
5 rows in set (0.00 sec)

1.查询没有姓名的用户假设我们有一个名为sales的销售表,其中包含Product(产品)Quantity(数量)Price(价格)字段。我们想要查询没有产品名为NULL的数据,可以使用IS NULL语句进行查询:

mysql> SELECT * from sales where Product is null;
Empty set (0.00 sec)
注意因为第五条数据的产品名称是空字符串,查询NULL值是查询不出来的

如果想查询字段为为空字符串的请使用下面语句:

mysql> SELECT * from sales where Product='';

+---------+----------+-------+
| Product | Quantity | Price |
+---------+----------+-------+
|         |     NULL |  5.00 |
+---------+----------+-------+
1 row in set (0.02 sec)

2. 现在我们想查找数量为NULL值记录,可以使用IS NULL语句进行查询:

mysql> SELECT * from sales where Quantity is null;
+---------+----------+-------+
| Product | Quantity | Price |
+---------+----------+-------+
|         |     NULL |  5.00 |
+---------+----------+-------+
1 row in set (0.00 sec)

这个查询将返回数量为NULL值的信息。

3.现在我们使用IS NOT NULL查找数量不为NULL值记录

mysql> SELECT * from sales where Quantity is not null;

+---------+----------+-------+
| Product | Quantity | Price |
+---------+----------+-------+
| Apple   |       10 | 10.00 |
| Banana  |        5 |  2.00 |
| Apple   |        8 | 12.00 |
| Banana  |        3 |  3.00 |
+---------+----------+-------+
4 rows in set (0.03 sec)

注意事项

在使用IS NULL语句时,需要注意以下几点:

SELECT column_name(s)FROM table_nameWHERE DATE_FORMAT(date_column, '%Y-%m') = 'NULL';

因为函数会对字段进行转换,可能会导致比较结果不准确。应该尽量避免在WHERE子句中使用函数。