[Mysql] NULL过滤数据
2023-09-11 14:22:53 时间
练习案例数据
DROP TABLE IF EXISTS purchase_info;
CREATE TABLE purchase_info(
commodity_id VARCHAR(8),
category VARCHAR(16),
colour VARCHAR(16),
purchase_quantity INT,
purchase_date DATE
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
INSERT INTO
purchase_info
(commodity_id,category,colour,purchase_quantity,purchase_date)
VALUE ('c001','clothing','black',150,'2020-04-25')
,('c002','clothing','white',50,'2020-04-05')
,('c003','shoes','white',500,'2020-03-23')
,('c004','shoes','red',200,'2020-04-07')
,('c005','clothing','blue',120,'2020-04-15')
,('c007','clothing',NULL,NULL,'2020-04-15');
purchase_info表(商品进货信息表)
在数据表中,如果某个字段的某个值为空白,则在SQL中以NULL代替,它与字段包含0、空字符串或仅仅包含空格不同
语法格式
-- IS NULL
SELECT column_name(s)
FROM table_name
WHERE column_name IS NULL;
-- IS NOT NULL
SELECT column_name(s)
FROM table_name
WHERE column_name IS NOT NULL;
问题1:筛选出colour字段为NULL的数据
SELECT *
FROM purchase_info
WHERE colour = NULL;
结果展示:
查询结果为空
由于NULL的特殊性,无法使用等号=来定位,如果想要查询NULL的记录,则需要使用IS关键字,代码如下:
SELECT *
FROM purchase_info
WHERE colour IS NULL;
结果展示:
问题2:查询不包含colour字段为NULL的记录
SELECT *
FROM purchase_info
WHERE colour IS NOT NULL;
结果展示:
NULL过滤数据易错点
在默认情况下,MySQL排序显示NULL最小
问题3:对包含NULL的purchase_quantity字段进行升序排序
SELECT *
FROM purchase_info
ORDER BY purchase_quantity ASC;
结果展示:
问题扩展:如何将NULL值排在最后?
添加负号
SELECT *
FROM purchase_info
ORDER BY -purchase_quantity DESC;
结果展示:
问题4:对包含NULL的purchase_quantity字段进行降序排序
SELECT *
FROM purchase_info
ORDER BY purchase_quantity DESC;
结果展示:
相关文章
- 【MySQL】常见的mysql 进程state
- 【MySql】mysql 数据库数据订正
- 【MySql】mysql 的权限体系介绍
- Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
- navcat导入mysql.sql出现:2006, 'MySQL server has gone away'
- mysql数据去重并排序使用distinct 和 order by 的问题
- 合理使用mysql中的load data infile导入数据
- Mysql 复制数据库及数据
- 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
- MYSQL避免全表扫描__如何查看sql查询是否用到索引(mysql)
- python mysql插入多条数据
- Mysql 根据一个表数据更新另外一个表
- MySQL更新表数据
- PHP与MYSQL事务处理
- 【MYSQL初级篇】入门学习【增删改查-库表数据】
- Mysql入门技能树-数据查询
- Java MySQL 连接
- 【Mysql异构实时同步Oracle】OGG12异构同步mysql到oracle(windows mysql实时同步数据到linux oracle)详细文档