mysql> select NULL=NULL; #判断两个NULL是否相等,结果不是1也不是0
+-----------+
| NULL=NULL |
+-----------+
| NULL |
+-----------+
1 row in set (0.00 sec) mysql> select NULL<>NULL,NULL!=NULL; #判断两个NULL是否不相等,结果不是1也不是0
+------------+------------+
| NULL<>NULL | NULL!=NULL |
+------------+------------+
| NULL | NULL |
+------------+------------+
1 row in set (0.00 sec) mysql> select NULL<=>NULL; #判断两个NULL是否相等
+-------------+
| NULL<=>NULL |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec) mysql> select NULL is NULL; #判断两个NULL是否相等
+--------------+
| NULL is NULL |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec) mysql> select NULL is NOT NULL; #判断两个NULL是否不相等
+------------------+
| NULL is NOT NULL |
+------------------+
| 0 |
+------------------+ mysql> select not NULL; #对NULL取非
+----------+
| not NULL |
+----------+
| NULL |
+----------+
1 row in set (0.00 sec) mysql> select 1 and NULL, NULL and NULL;
+------------+---------------+
| 1 and NULL | NULL and NULL |
+------------+---------------+
| NULL | NULL |
+------------+---------------+
1 row in set (0.00 sec) mysql> select 1 or NULL, NULL or NULL,0 or NULL;
+-----------+--------------+-----------+
| 1 or NULL | NULL or NULL | 0 or NULL |
+-----------+--------------+-----------+
| 1 | NULL |      NULL |
+-----------+--------------+-----------+
1 row in set (0.00 sec)

  总结:

  尽量使用 <=>、is null 、is not null 对NULL进行判断,否则得到的结果都是NULL;

  NULL进行与和非运算时,结果都是null,然后NULL和一个值为true的值取或,结果为1,否则结果都为NULL;

  上面的总结比较混乱,因为NULL可以理解为一个变量的值是未知的,他可能为true,可能为false(相对于bool值),那么在进行运算时,就要考虑两种情况,其中一种情况为false时,总的结果就是NULL。

MySQL中有关NULL的计算的更多相关文章

  1. mysql中的null字段值的处理及大小写问题

    在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常 ...

  2. MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    转:https://mp.weixin.qq.com/s/CEJFsDBizdl0SvugGX7UmQ 不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL ...

  3. MySQL中 IS NULL、IS NOT NULL、!= 能用上索引吗?

    看面试题的时候,总能看到MySQL在什么情况下用不上索引,如下: MySQL的WHERE子句中包含 IS NULL.IS NOT NULL.!= 这些条件时便不能使用索引查询,只能使用全表扫描. 不耽 ...

  4. Mysql 中is null 和 =null 的区别

    在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如 果去运行一下试试的话差别会很大! 为什么会出现这种情况呢? null 表示 ...

  5. MySQL中处理Null时要注意两大陷阱

    MySQL数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是一个比较特殊的字段. ...

  6. mysql中TPS, QPS 的计算方式

    今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容.  在做db基准测试的时候,qps,tps 是衡量数 ...

  7. mysql中的NULL的判断

      mysql> delete from `zhangchao` where x='NULL'; rows affected (0.00 sec) mysql> delete from ` ...

  8. mysql 中通过身份证号码计算年龄

    SELECT DATE_FORMAT(NOW(), '%Y') - SUBSTRING( '换成对应身份证',7,4) AS age

  9. MySQL 中NULL和空值的区别

    平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...

随机推荐

  1. 文件上传漏洞靶场:upload-labs安装及第一关教程

    注:本文仅供学习使用,请勿用于非法操作,后果与作者无关!!! 一.简介 upload-labs是一个使用php语言编写的,专门收集渗透测试过程中遇到的各种上传漏洞的靶场.旨在帮助大家对上传漏洞有一个全 ...

  2. 我的第一个SolidWorks图

    1. 学习到的知识点 2. 完成的工程图 3. 感受 学习是一种快乐,学到新的知识要学会分享,只要坚持,就有那么一点点的成就. 4. 参考 SolidWorks帮助文档

  3. python3编写网络爬虫23-分布式爬虫

    一.分布式爬虫 前面我们了解Scrapy爬虫框架的基本用法 这些框架都是在同一台主机运行的 爬取效率有限 如果多台主机协同爬取 爬取效率必然成倍增长这就是分布式爬虫的优势 1. 分布式爬虫基本原理 1 ...

  4. Linux之权限详解

    如何知道你有什么权限 我能干什么?这是我最关心的问题! 切换到普通用户 [root@luffy-01 ~]# su - pizza [pizza@luffy-01 ~]$ ls /root ls: c ...

  5. (5)Python字典

  6. 伪静态规则RewriteRule-htaccess

    伪静态实际上是利用php把当前地址解析成另一种方法来访问网站,要学伪静态规则的写法,要懂一点正则 一.正则表达式教程 有一个经典的教程:正则表达式30分钟入门教程 常用正则如下: . 换行符以外的所有 ...

  7. ELMO模型(Deep contextualized word representation)

    1 概述 word embedding 是现在自然语言处理中最常用的 word representation 的方法,常用的word embedding 是word2vec的方法,然而word2vec ...

  8. 001_HTTP参数中Etag的重要性

    在研究tornado时,有个Etag比较好奇,从网上查询摘录如下:

  9. Android APP性能测试笔记(一)

    Android APP性能测试笔记(一) (1)工具使用   Android Studio  GT, root的真机 (2)记录apk大小(对比竞品)   使用Android Studio导入需要测试 ...

  10. Sphinx 生成 Windows 帮助文件 (.chm文件)

    本文不介绍 Sphinx 的用法,只简要罗列 Windows 下生成 .chm 文件的步骤. 0. 首先检查机器是否安装了 HTML Help Workshop 软件,一般安装路径应该是 C:\Pro ...