当前位置: 首页 > news >正文

MySQL 值为Null会导致的问题

MySQL 值为Null会导致的问题

  • 数据准备
select version();
-- 8.0.30

-- 如果存在 person 表先删除
DROP TABLE IF EXISTS person; 

-- 创建 person 表,其中 username 字段可为空,并为其设置普通索引
CREATE TABLE person (
	id INT PRIMARY KEY auto_increment,
	name VARCHAR(20),
	mobile VARCHAR(13),
	index(name)
) ENGINE='innodb';

-- person 表添加测试数据
insert into person(name,mobile) values('Java','13333333330'),
	('MySQL','13333333331'),
	('Redis','13333333332'),
	('Kafka','13333333333'),
	('Spring','13333333334'),
	('MyBatis','13333333335'),
	('RabbitMQ','13333333336'),
	('Golang','13333333337'),
	(NULL,'13333333338'),
	(NULL,'13333333339');
  
select * from person;

count / distinct数据丢失

select count(*),count(name) from person;

-- count(*) count(name)
-- 10       8

select count(distinct name,mobile) from person;
-- 8
-- 当使用count(distinct col1,col2),如果任何一直字段的值为NULL,即使另外一列有值,查询结果也会被忽略

select 数据丢失

如果某列存在 NULL 值时,如果执行非等于查询(<>/!=)会导致为 NULL 值的结果丢失。

select * from person where name<>'Java' order by id;
-- 或
select * from person where name!='Java' order by id;

导致空指针异常

在使用聚会函数,SUM,AVG等,如何值为NULL,查询结果也是NULL,不会是预期值0.

解决方案是 SUM(ifnull(salary, 0))

group by , order by 会统计NULL值

select * from person order by name;

select name from person GROUP by name;

http://www.dtcms.com/a/60170.html

相关文章:

  • 【docker简化部署有状态prometheus+grafana】
  • Linux基础之基础概念
  • Java字符串(算法题相关)
  • 【第23节】C++设计模式(行为模式)-Interpreter(解释器)模式
  • 【面试】Java 集合
  • 使用格式工厂提取视频中的音频
  • 中国AI新星Manus:通用Agent的破晓时刻
  • 《OkHttp:工作原理 拦截器链深度解析》
  • 达梦数据库、图形管理工具安装和 JDBC 使用
  • 【强化学习笔记2】奖励稀疏的应对方式以及逆强化学习
  • 網站為何要注意负载均衡的應用
  • 可视化大屏:解锁数据奥秘,驱动智慧决策
  • scala 中的@BeanProperty
  • LabVIEW闭环控制系统硬件选型与实时性能
  • 全面回顾复习——C++语法篇1(基于牛客网C++题库)
  • XSS-LABS靶场通关讲解
  • 读书会-c#并发编程
  • P9421 [蓝桥杯 2023 国 B] 班级活动--数学题(配对问题)
  • FakeApp 技术浅析(三):自动编码器
  • ArcGIS 工程文件到 ArcGIS Pro 的无缝迁移:详细步骤与技巧
  • Linux系统管理二
  • MYSQL之创建数据库和表
  • 算力集群+Pycharm+SSH连接经验(自用)
  • Redis篇:基础知识总结与基于长期主义的内容更新
  • 德鲁伊连接池
  • ROS云课基础题库-01C++案例-甜甜圈
  • TCP和UDP
  • python JSON模块
  • VS(visual studio 2022)的实用调试小技巧[特殊字符]
  • 《 C++ 修炼全景指南:二十六 》想懂数据库?深入 B 树的世界,揭示高效存储背后的逻辑