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
来判断字段值是否为空。