MySQL 判断是否为空

在数据库管理系统中,经常需要判断字段值是否为空。在 MySQL 中,我们可以使用 IS NULL 和 IS NOT NULL 来判断字段是否为空。
IS NULL
IS NULL 用于判断字段值是否为空。如果字段值为空,返回 TRUE;如果字段值不为空,返回 FALSE。
使用语法
SELECT column_name
FROM table_name
WHERE column_name IS NULL;
在上面的语法中,column_name 是要判断是否为空的字段名,table_name 是字段所在的表名。
示例
假设有一个名为 customers 的表,其中包含 id 和 name 两个字段,现在我们需要查询名字为空的记录。可以使用以下 SQL 语句:
SELECT id, name
FROM customers
WHERE name IS NULL;
运行结果
| id | name |
|---|---|
| 1 | NULL |
| 3 | NULL |
以上结果表示 customers 表中第一行和第三行的 name 字段值为空。
IS NOT NULL
IS NOT NULL 与 IS NULL 相反,用于判断字段值是否不为空。如果字段值不为空,返回 TRUE;如果字段值为空,返回 FALSE。
使用语法
SELECT column_name
FROM table_name
WHERE column_name IS NOT NULL;
在上面的语法中,column_name 是要判断是否不为空的字段名,table_name 是字段所在的表名。
示例
假设有一个名为 products 的表,其中包含 id 和 description 两个字段,现在我们需要查询描述不为空的记录。可以使用以下 SQL 语句:
SELECT id, description
FROM products
WHERE description IS NOT NULL;
运行结果
| id | description |
|---|---|
| 2 | Great product |
| 4 | Best seller |
| 5 | Limited stock |
以上结果表示 products 表中 description 字段值不为空的记录。
综合示例
为了更好地理解 IS NULL 和 IS NOT NULL 的用法,我们来看一个综合示例。
假设有一个名为 orders 的表,其中包含 id、order_date 和 customer_id 三个字段。现在我们需要查询订单日期为空或者不为空的记录。
查询订单日期为空的记录
SELECT id, order_date
FROM orders
WHERE order_date IS NULL;
运行结果
| id | order_date |
|---|---|
| 1 | NULL |
| 3 | NULL |
以上结果表示 orders 表中订单日期为空的记录。
查询订单日期不为空的记录
SELECT id, order_date
FROM orders
WHERE order_date IS NOT NULL;
运行结果
| id | order_date |
|---|---|
| 2 | 2021-08-15 |
| 4 | 2021-08-20 |
| 5 | 2021-09-05 |
以上结果表示 orders 表中订单日期不为空的记录。
总结
通过本文的介绍,我们学习了如何在 MySQL 中使用 IS NULL 和 IS NOT NULL 来判断字段值是否为空。
极客笔记