这是MySQL一大特殊之处。

概念上。NULL意味着“没有值”或“未知值”,且它被看作有点与众不同的值。

为了測试NULL。你不能使用算术比較运算符比如=、<或!=。为了说明它,试试下列查询:

    mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;

    +----------+-----------+----------+----------+

    | 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |

    +----------+-----------+----------+----------+

    | NULL | NULL | NULL | NULL |

    +----------+-----------+----------+----------+

    非常清楚你从这些比較中得到毫无意义的结果。

相反使用IS NULL和IS NOT NULL操作符:

    mysql> SELECT 1 IS NULL, 1 IS NOT NULL;

    +-----------+---------------+

    | 1 IS NULL | 1 IS NOT NULL |

    +-----------+---------------+

    | 0 | 1 |

    +-----------+---------------+

    在MySQL中。0意味着假而1意味着真。

    NULL值的概念是造成SQL的新手的混淆的普遍原因。他们常常觉得NULL是和一个空字符串''的一样的东西。不是这种。比如。下列语句是全然不同的:

    mysql> INSERT INTO my_table (phone) VALUES (NULL);

    mysql> INSERT INTO my_table (phone) VALUES ("");

    两个语句把值插入到phone列。可是第一个插入一个NULL值而第二个插入一个空字符串。

第一个的含义能够觉得是“电话号码不知道”,而第二个则可意味着“她没有电话”。

    在SQL中,NULL值在于不论什么其它值甚至NULL值比較时总是假的(FALSE)。

包括NULL的一个表达式总是产生一个NULL值。除非在包括在表达式中的运算符和函数的文档中指出。

在下列样例,全部的列返回NULL:

    mysql> SELECT NULL,1+NULL,CONCAT('Invisible',NULL);

    +------+--------+--------------------------+

    | NULL | 1+NULL | CONCAT('Invisible',NULL) |

    +------+--------+--------------------------+

    | NULL | NULL | NULL |

    +------+--------+--------------------------+

    假设你想要寻找值是NULL的列。你不能使用=NULL測试。下列语句不返回不论什么行,由于对不论什么表达式。expr = NULL是假的:

    mysql> SELECT * FROM my_table WHERE phone = NULL;

    要想寻找NULL值,你必须使用IS NULL測试。

下例显示怎样找出NULL电话号码和空的电话号码:

    mysql> SELECT * FROM my_table WHERE phone IS NULL;

    mysql> SELECT * FROM my_table WHERE phone = "";

TIPS:

    在MySQL中,就像非常多其它的SQLserver一样,你不能索引能够有NULL值的列。你必须声明这种列为NOT NULL,并且,你不能插入NULL到索引的列中。

当使用ORDER BY时。首先呈现NULL值。假设你用DESC以降序排序,NULL值最后显示。当使用GROUP BY时。全部的NULL值被觉得是相等的。

    为了有助于NULL的处理,你能使用IS NULL和IS NOT NULL运算符和IFNULL()函数。

对某些列类型,NULL值被特殊地处理。假设你将NULL插入表的第一个TIMESTAMP列,则插入当前的日期和时间。

假设你将NULL插入一个AUTO_INCREMENT列,则插入顺序中的下一个数字。

MySQ学习笔记之十 NULL值处理的更多相关文章

  1. SQL反模式学习笔记14 关于Null值的使用

    目标:辨别并使用Null值 反模式:将Null值作为普通的值,反之亦然 1.在表达式中使用Null: Null值与空字符串是不一样的,Null值参与任何的加.减.乘.除等其他运算,结果都是Null: ...

  2. 吴裕雄--天生自然MySQL学习笔记:MySQL NULL 值处理

    MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了三大运算符 ...

  3. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  4. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  5. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  6. Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例

    前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...

  7. Binder学习笔记(十二)—— binder_transaction(...)都干了什么?

    binder_open(...)都干了什么? 在回答binder_transaction(...)之前,还有一些基础设施要去探究,比如binder_open(...),binder_mmap(...) ...

  8. 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

    目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...

  9. VSTO 学习笔记(十)Office 2010 Ribbon开发

    原文:VSTO 学习笔记(十)Office 2010 Ribbon开发 微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个R ...

随机推荐

  1. iis解析json

    一. windows XP 1. MIME设置:在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-”新类型”,添加一个文件类型:关联扩展名:*.json内容类型(MIME):a ...

  2. 12:打印 1 到最大的 n 位数

    题目:输入数字 n.按顺序打印出从 1 到 最大的 n 位十进制数.比方输入 3 ,则打印出 1.2 .3 一直到最大的3位数即 999. 解析: easy知道不能用 int 等数字类型表示(大数问题 ...

  3. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER

    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER ...

  4. UVALive 4223 / HDU 2962 spfa + 二分

    Trucking Problem Description A certain local trucking company would like to transport some goods on ...

  5. gson的安装和使用

    gson的安装和使用 1.安装 2.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  6. Vmware Workstation及Centos6.8 的安装

    转自:http://www.mamicode.com/info-detail-1462939.html 一.什么是Vmware Workstation Vmware Workstation是Vmwar ...

  7. [JZOJ 4307] [NOIP2015模拟11.3晚] 喝喝喝 解题报告

    题目链接: http://172.16.0.132/senior/#main/show/4307 题目: 解题报告: 题目询问我们没出现坏对的连续区间个数 我们考虑从左到有枚举右端点$r$,判断$a[ ...

  8. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  9. spark集群体系结构

  10. java高级——生产者消费者问题

    多线程是一个很重要的应用,本节讲述多线程中同步问题 public class ThreadDemo { public static void main(String[] args) { Resourc ...