MySQL中有关NULL的计算
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的计算的更多相关文章
- mysql中的null字段值的处理及大小写问题
在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常 ...
- MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!
转:https://mp.weixin.qq.com/s/CEJFsDBizdl0SvugGX7UmQ 不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL ...
- MySQL中 IS NULL、IS NOT NULL、!= 能用上索引吗?
看面试题的时候,总能看到MySQL在什么情况下用不上索引,如下: MySQL的WHERE子句中包含 IS NULL.IS NOT NULL.!= 这些条件时便不能使用索引查询,只能使用全表扫描. 不耽 ...
- Mysql 中is null 和 =null 的区别
在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如 果去运行一下试试的话差别会很大! 为什么会出现这种情况呢? null 表示 ...
- MySQL中处理Null时要注意两大陷阱
MySQL数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是一个比较特殊的字段. ...
- mysql中TPS, QPS 的计算方式
今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容. 在做db基准测试的时候,qps,tps 是衡量数 ...
- mysql中的NULL的判断
mysql> delete from `zhangchao` where x='NULL'; rows affected (0.00 sec) mysql> delete from ` ...
- mysql 中通过身份证号码计算年龄
SELECT DATE_FORMAT(NOW(), '%Y') - SUBSTRING( '换成对应身份证',7,4) AS age
- MySQL 中NULL和空值的区别
平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...
随机推荐
- php学习----异常处理(接上篇)
PHP异常处理之抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行. 既然抛出异常会中断程序 ...
- LeetCode算法题-Lowest Common Ancestor of a Binary Search Tree
这是悦乐书的第197次更新,第203篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第59题(顺位题号是235).给定二叉搜索树(BST),找到BST中两个给定节点的最低共 ...
- June 12. 2018 Week 24th. Tuesday
Just be yourself because you are unique and you will shine. 每个人都是独一无二的,做好你自己,你也能够光芒四射. From What a G ...
- java操作elasticsearch实现组合桶聚合
1.terms分组查询 //分组聚合 @Test public void test40() throws UnknownHostException{ //1.指定es集群 cluster.name 是 ...
- UVA10570-Meeting with Aliens(枚举)
Problem UVA1616-Caravan Robbers Accept: 531 Submit: 2490Time Limit: 3000 mSec Problem Description I ...
- UVA12627-Erratic Expansion(递归)
Problem UVA12627-Erratic Expansion Accept: 465 Submit: 2487Time Limit: 3000 mSec Problem Descriptio ...
- 使用ECharts来实现地图下钻功能(某省的市级下钻到县级)
var cityMap = { "长沙市": "430100", "株洲市": "430200", "湘潭市& ...
- PHP HMAC_SHA1 算法 生成算法签名
HMAC_SHA1(Hashed Message Authentication Code, Secure Hash Algorithm)是一种安全的基于加密hash函数和共享密钥的消息认证协议. 它可 ...
- Linux中查看你的用户是否为root用户
可以使用sudo -l命令: user@fafsf:/opt/user$ sudo -l [sudo] password for user: //这里是要输入你的密码 Sorry, user user ...
- Spring Security(二十二):6.4 Method Security
From version 2.0 onwards Spring Security has improved support substantially for adding security to y ...