NULL值可能令人感到奇怪直到你习惯它。概念上,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或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。

对NULL的特殊处理即是在前面的章节中,为了决定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL的原因。

在GROUP BY中,两个NULL值视为相同。

执行ORDER BY时,如果运行 ORDER BY ... ASC,则NULL值出现在最前面,若运行ORDER BY ... DESC,则NULL值出现在最后面。

NULL操作的常见错误是不能在定义为NOT NULL的列内插入0或空字符串,但事实并非如此。在NULL表示"没有数值"的地方有数值。使用IS [NOT] NULL则可以很容易地进行测试,如下所示:

mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
+-----------+---------------+------------+----------------+
| 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
+-----------+---------------+------------+----------------+
|         0 |             1 |          0 |              1 |
+-----------+---------------+------------+----------------+

因此完全可以在定义为NOT NULL的列内插入0或空字符串,实际是NOT NULL。参见A.5.3节,“与NULL值有关的问题”。

3.3.4.6. NULL值操作相关推荐

  1. 数据库-null值和notnull操作

    null和not null值 对一些字段类型要进行检查,判断某些字段是否为NULL,或者 non-NULL mysql> SELECT name, birth, death, ‐> TIM ...

  2. mysql空值数据放在前面_Mysql实现null值排在最前/最后的操作代码

    Mysql实现null值排在最前/最后的方法示例 前言 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该 ...

  3. golang 数据库null值错误 解决方法

    遇到问题: converting NULL to string is unsupported 定义的结构体中 结构体成员类型为string,从mysql数据库中查询数据中有NULL值,go语言执行sc ...

  4. oracle 让人抓狂的错误之 null值 与 无值(无结果)-开发系列(一)

    近期.在做开发.写存过的时候碰到一些问题,找了好长时间才发现原因.并且是曾经不知道的. 所以在这给记下来 给自己备忘和大家參考. 一 .null值 以下举个最简单的样例.寻常工作其中肯定比这个sql复 ...

  5. 【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )

    文章目录 一.将 两头堵模型 抽象成业务模块函数 二.完整代码示例 一.将 两头堵模型 抽象成业务模块函数 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 , 一般使用 ...

  6. c语言stdio中null的值,C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解

    原创 程序员无言 2020-07-01 在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面 ...

  7. oracle根据null排序,oracle 关于null值排序

    在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...

  8. 如何在 Asp.Net Core MVC 中处理 null 值

    译文链接:https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html 传统的 ...

  9. hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

最新文章

  1. 【动态规划】状态压缩动态规划
  2. http中的净荷 payload(有效载荷、有效负载)是什么?
  3. binary search tree python_二叉查找树(binary search tree)——python实现
  4. 在eclipse中,怎么改变字体大小?
  5. Android之调用系统分享
  6. linux用户态使用gpio中断方法
  7. Linux标准化:避免重蹈UNIX的覆辙
  8. Altium designer-PCB设计基础笔记
  9. bp神经网络人口预测 C语言,BP神经网络人口预测模型研究与仿真
  10. 使用mathematica求解最优化模型
  11. 徐培成大数据第一季java基础-徐培成-专题视频课程
  12. Binder机制原理简述
  13. word修订模式怎么彻底关闭_word修订模式取消不了
  14. 2022年茶艺师(初级)考试试卷及茶艺师(初级)模拟试题
  15. 剑指offer 数组中出现次数超过一半的数字
  16. python倒背如流_python基本操作(五)
  17. PyCharm中文版(无需汉化包,一键设置)
  18. 离散型均匀分布 连续型均匀分布
  19. Windows 10 修改 Alt+Tab 键 切换 新版 Microsoft Edge 单个标签页窗口
  20. DQL数据查询语言--select的巧妙用法

热门文章

  1. python 两两组合
  2. c语言微秒级延迟程序,C语言中生产随机数及计算运行时间(微秒级)
  3. 手机上怎么打开md格式的文件_怎么压缩pdf文件?文件过大、传阅困难就用这个办法...
  4. 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
  5. centos7 环境搭建(LNMP)以及虚拟环境(python3)
  6. Oracle数据库SqlLoad常用技巧总结word版
  7. 用xib自定义UIView并在代码中使用--iOS
  8. SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现
  9. A browser for WinCE/Windows base WebKit. (zz)
  10. Livejourmal是什么