首页 > 数据库 >MySQL 中 不等于 会过滤掉 Null 的问题

MySQL 中 不等于 会过滤掉 Null 的问题

时间:2024-05-31 10:46:37浏览次数:27  
标签:等于 过滤 B1 MySQL 筛选 Null WHERE SELECT

在写SQL 条件语句时经常用到 不等于 != 的筛选条件。
  此时要注意此条件会将字段为 Null 的数据也当做满足不等于的条件而将数据筛选掉。

例:表A

A1 B1
1 0
2 1
3 Null

执行如下查询:

SELECT * FROM A WHERE B1 != 1;

得到的结果如下:

A1 B1
1 0

第三列 B1为空的也是会筛选掉的。

要查出第三列只需将SQL 改为如下语句 即可。

SELECT * FROM A WHERE B1 != 1 OR B1 is Null;

上面这种方法最通俗,网上也最多,但是我总是感觉效率太低。

目前我使用的方法是:

SELECT * FROM A WHERE IFNULL(B1,'')  != 1;

标签:等于,过滤,B1,MySQL,筛选,Null,WHERE,SELECT
From: https://www.cnblogs.com/liftsail/p/18224018

相关文章

  • MySQL - binlog日志简介及设置
    基本概念binlog是Mysqlsever层维护的一种二进制日志,与innodb引擎中的redo/undolog是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,记录了所有的DDL和DML(除了数据查询语句)语句,并以事务的形式保存在磁盘中,还包含语句所执行的消耗的时间,MySQL的二进制......
  • Mysql视图和索引
    什么是视图(view)   MySQL中的视图(View)是一个虚拟的表,其内容由查询定义。视图并不在数据库中以存储的数据值形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图的优势简化复杂性:通过视图,用户可以只看到他们感兴趣的数据或数据的简化版......
  • 面经-Java,Linux,Mysql,网络
    状态码2xx:成功类3xx:重定向4xx:客户端错误5xx:服务器错误404:未找到网页400:请求语法错误500:服务器错误503:服务器停机200:成功post和get的区别get多用于获取服务端数据,post多用于向服务端推送数据。get的参数多拼接在url中,post的参数放在请求体中。故post的安全系数高......
  • 31.MySQL数据库【一】基础介绍
    【一】数据库初识1)存储数据的演变过程基于内存保存文件操作json模块搭建TCP的客户端和服务端,TCP服务端用作存储服务,TCP客户端用于上传和下载数据存储数据的位置就是数据库2)数据库本质就是一块基于网络通信保存数据的应用程序3)数据库的介绍1.关联性数据库(存......
  • 32.MySQL数据库【二】存储引擎与基本数据类型.
    【一】MySQL之存储引擎1)介绍针对不同的数据有不同的处理机制,存储引擎就是不同的处理机制2)MySQL主要的存储引擎1.innodb是MySQL5.5版本之后的默认存储引擎支持事务、外锁、外键2.myisam是MySQL5.5版本之前的默认存储引擎速度比innodb快,但数据安全性较弱3.memory......
  • 34.MySQL数据库【四】过滤条件
    过滤条件【一】语法select*/字段名from*/表名where*/字段名=字段值;--执行顺序from起手知道是那张表where根据过滤条件在表中过滤数据select再过滤出自己想要的数据【二】准备的数据#创建表createtablefilt_eg( idintnotnulluniqueauto_increment,......
  • 33.MySQL数据库【三】约束条件
    约束条件限制表中的数据,保证数据的准确性和可靠性而存在的限制规则【一】非空约束(notnull)限制指定字段不能为空#建表createtableeg( namevarchar(32)notnull, hobbyvarchar(32));#name字段不能为空【二】唯一性约束(unique)限制字段具有唯一性,不能重复,但能为......
  • 35.MySQL数据库【五】多表查询和子查询
    多表查询和子查询【一】概念子查询:将一条SQL语句的查询结果加括号当做另外一条SQL语句的查询结果链表查询:先将多张表拼接到一起,形成一张大表,让后基于单表查询获取数据1)创建数据#建表createtabledep( idintPRIMARYKEYAUTO_INCREMENT,namevarchar(20));......
  • MySQL Shell 调用外部脚本
    使用CLI工具时,打错命令很容易纠正。不过,在MySQlShell中工作时,命令可能会更长、更复杂。以下是运行MySQLDocumentStore的一个例子。db.scores.find("year(date)=2023").fields(['lastName','firstName','round(avg(score),2)asavg','count(score)asnum......
  • 【docker】docker 下 MySQL偶然无法访问
    1.概述我有一个环境遇到了docker下MySQL偶然无法访问,具体情况如下可以被看到可以telnet通畅,这个jar是我自己研发的,主要这台机器是别人的没有装telnet但是任务还是报错所在机器telnet通但是无法登录,同事说遇到过比如网络卡或者不稳定,需要重启一下mysql我先去......