MySQL子查询的空值问题解决

 更新时间:2023年06月27日 15:01:06   作者:ldlbulabula  
本文主要介绍了MySQL子查询的空值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

目前数据库中有三个表

EMPLOYEES表DEPARTMENTS表LOCATIONS表
employee_iddepartment_idlocation_id
first_namedepartment_namestreet_address
last_namemanager_idpostal_code
emaillocation_idcity
phone_numberstate_province
job_idcountry_id
salary
commission_pct
manager_id
department_id
#现在要求:
#查找公司管理者的last_name。已知manager_id有为null的数据
SELECT last_name
FROM employees
WHERE employee_id IN ( 
            SELECT manager_id
            FROM employees
            );

这里找出了所有公司管理者的名字(18行数据)。 ​ 已知employees中共107行数据 ​ 现要查出这18人以外的人,理论上有89人。

#已知manager_id有为null的数据
SELECT last_name
FROM employees
WHERE employee_id NOT IN ( 
			SELECT manager_id
			FROM employees
			);

 可见,查询结果为空。

原因: 使用not in 的时候,如果not in后面的选项中有null,不会查询出来任何数据。sql语句本身直接返回false

#举例
SELECT employee_id,last_name
FROM employees 
WHERE employee_id NOT IN (NULL,101,102);
#该语句返回空集

举例的查询语句等价于

SELECT employee_id,last_name
FROM employees 
WHERE employee_id!= NULL AND employee_id!=101 AND employee_id!=102;

WHERE中的条件永远返回null

null不能参与比较运算符,即与任何数据比较结果都为null,

比较结果分为true、false、null,只有结果为true时候,系统才认为匹配成功并返回记录,

到此这篇关于MySQL子查询的空值问题解决的文章就介绍到这了,更多相关MySQL子查询空值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Navicat连接MySQL错误描述分析

    Navicat连接MySQL错误描述分析

    最近遇到了一件非常棘手的问题,用Navicat连接MySQL总是出错, 网上查阅了一下原因,最终找到解决方案,好吧,下面我就来回忆一下自己怎么处理这问题的,分享到脚本之家平台需要的朋友参考下吧
    2021-06-06
  • mybatis-plus如何使用sql的date_format()函数查询数据

    mybatis-plus如何使用sql的date_format()函数查询数据

    这篇文章主要给大家介绍了关于mybatis-plus如何使用sql的date_format()函数查询数据的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • 提升MongoDB性能的方法

    提升MongoDB性能的方法

    在本篇文章中我们给大家总结了提升MongoDB性能的方法以及相关知识点内容,有需要的朋友们可以学习下。
    2018-09-09
  • MySQL的Query Cache图文详解

    MySQL的Query Cache图文详解

    Query Cache就是把查询返回的结果缓存起来,但是,仅仅只是缓存查询返回的结果,其实是不准确的,Query Cache还会缓存查询语句,在内存中将查询语句和查询返回的结果映射起来
    2021-07-07
  • 浅谈一下MyISAM和InnoDB存储引擎的区别

    浅谈一下MyISAM和InnoDB存储引擎的区别

    这篇文章主要介绍了MyISAM和InnoDB存储引擎的区别,存储引擎是MySQL中特有的一个术语,其它数据库中没有,实际上存储引擎是一个表存储/组织数据的方式,今天就跟小编来看看MyISAM和InnoDB存储引擎的区别,需要的朋友可以参考下
    2023-04-04
  • mysql备份脚本以及删除前5天的备份文件

    mysql备份脚本以及删除前5天的备份文件

    mysql备份脚本在网上有很多的,在本文将为大家详细介绍下如何删除前5天的备份文件,感兴趣的朋友不要错过
    2013-10-10
  • 详解mysql bit/json/enum/set 的数据存储

    详解mysql bit/json/enum/set 的数据存储

    这篇文章主要介绍了mysql bit/json/enum/set 的数据存储,探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储,需要的朋友可以参考下
    2023-09-09
  • 关于Mysql搭建主从复制功能的步骤实现

    关于Mysql搭建主从复制功能的步骤实现

    这篇文章主要介绍了关于Mysql搭建主从复制功能的步骤实现,在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用主从复制,需要的朋友可以参考下
    2023-05-05
  • MySQL中几种数据统计查询的基本使用教程

    MySQL中几种数据统计查询的基本使用教程

    这篇文章主要介绍了几种MySQL中数据统计查询的基本使用教程,包括平均数和最大最小值等的统计结果查询方法,是需要的朋友可以参考下
    2015-12-12
  • MySQL查询全部数据集结果不一致问题解决方案

    MySQL查询全部数据集结果不一致问题解决方案

    最近出现一个很奇怪的MySQL问题,使用不同select语句查询全部数据集居然得到不同的记录数
    2012-11-11

最新评论