MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

为了处理这种情况,MySQL提供了三大运算符:

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。

关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。

在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。

MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

注意:

select * , columnName1+ifnull(columnName2,0) from tableName;
columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值转为 0。

在命令提示符中使用 NULL 值

以下实例中假设数据库 RUNOOB 中的表 runoob_test_tbl 含有两列 runoob_author 和 runoob_count, runoob_count 中设置插入NULL值。

实例

尝试以下实例:

创建数据表 runoob_test_tbl

root@host# mysql -u root -p password;
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> create table runoob_test_tbl-> (-> runoob_author varchar(40) NOT NULL,-> runoob_count  INT-> );
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('RUNOOB', 20);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('菜鸟教程', NULL);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('Google', NULL);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('FK', 20);mysql> SELECT * from runoob_test_tbl;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| RUNOOB        | 20           |
| 菜鸟教程  | NULL         |
| Google        | NULL         |
| FK            | 20           |
+---------------+--------------+
4 rows in set (0.01 sec)

以下实例中你可以看到 = 和 != 运算符是不起作用的:

mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count = NULL;
Empty set (0.00 sec)
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count != NULL;
Empty set (0.01 sec)

查找数据表中 runoob_test_tbl 列是否为 NULL,必须使用 IS NULL 和 IS NOT NULL,如下实例:

mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| 菜鸟教程  | NULL         |
| Google        | NULL         |
+---------------+--------------+
2 rows in set (0.01 sec)mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| RUNOOB        | 20           |
| FK            | 20           |
+---------------+--------------+
2 rows in set (0.01 sec)

《零基础》MySQL NULL 值处理(二十一)相关推荐

  1. SLAM导航机器人零基础实战系列:(二)ROS入门——2.ROS系统整体架构

    SLAM导航机器人零基础实战系列:(二)ROS入门--2.ROS系统整体架构 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机 ...

  2. SLAM导航机器人零基础实战系列:(二)ROS入门——10.在实际机器人上运行ROS高级功能预览...

    SLAM导航机器人零基础实战系列:(二)ROS入门--10.在实际机器人上运行ROS高级功能预览 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了 ...

  3. SQL零基础入门学习(十二)

    SQL零基础入门学习(SQL约束) SQL CREATE INDEX 语句 CREATE INDEX 语句用于在表中创建索引. 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据. 索引 ...

  4. 零基础mysql项目实例_MySQL-零基础开发

    1.终端下连接mysql服务 mysql -uroot -p回车后输入设定的密码即可. 进去后每条命令结尾要带分号:退出命令exit 单行注释有两种:# 或 --空格.多行注释/* */ 2.基本命令 ...

  5. Oracle 与 Mysql NULL值,空字符串''的区别

    Oracle(null等同于空字符'') 1.oracle插入空字符串默认替换成null 2.oracle查询(null和被替换的空字符)时使用 is null/is not null 3.使用聚合函 ...

  6. mysql null值和空格_MySQL中NULL与空字符串空格问题

    一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串' '是相同的.这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的.NULL是指没有值,而''则表示值是存在的,只不过是个 ...

  7. cnn 验证集 参与训练吗_一个简单的零基础的机器学习教程之二,字母数字验证码识别...

    一.前言 基于前面我发的贴子 土味程序员:一个简单的零基础的机器学习教程,Pytorch搭建Faster R-CNN目标检测平台​zhuanlan.zhihu.com 一个非常震撼的目标检测的例子.上 ...

  8. MySQL NULL 值处理

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

  9. 零基础入门深度学习(二):用一个案例掌握深度学习方法

    导读 本课程是百度官方开设的零基础入门深度学习课程,主要面向没有深度学习技术基础或者基础薄弱的同学,帮助大家在深度学习领域实现从0到1+的跨越.从本课程中,你将学习到: 深度学习基础知识 numpy实 ...

最新文章

  1. Javascript--键盘事件的组合使用
  2. php面向对象编程开发,php面向对象编程之对象
  3. 【零基础学习iOS开发】【02-C语言】10-函数
  4. java 调用windows bat脚本
  5. PWM 发生器模块设计
  6. C++ 带默认参数值的函数
  7. centos 7 mysql随机密码_在centos中安装了mysql5.7之后解决不知道随机的密码的问题...
  8. ImportError: No module named 'matplotlib'(python 安装各种 )
  9. BDD测试利器:mocha+should.js
  10. HDOJ 1896 Stones
  11. 分子重构技术_分子影像重构精准未来:百名专家云端共筑 One MI 生态圈
  12. error: dst ref refs/heads/zhCN_v0.13.1 receives from more than one src.
  13. C语言 求平方 求开方
  14. Spire.pdf-使用学习记录
  15. 密钥配送问题解决方法
  16. Java实现蓝桥杯 九宫幻方
  17. 2020最新as项目中添加jni---------静态注册
  18. Linux网络适配器不见了,linux – lspci未显示HyperV网络适配器
  19. idea集成泛微axis拉取代码时报错,Axis1.4完整maven jar
  20. 【已解决】surface 电池不好充电显示 未连接 ,将充电的接口换个方向就解决了

热门文章

  1. 数据挖掘 python框架_8个最高效的Python爬虫框架
  2. 中国上海量子计算机,首台光量子计算机在上海亮相
  3. mysql 将时间戳_mysql 将时间戳直接转换成日期时间
  4. go语言 mysql卡死_一次mysql死锁的排查过程-Go语言中文社区
  5. 创建路径_PS钢笔工具是建立路径的基本工具
  6. mysql cascade|restrict|no action|set null__mysql 外键的几种约束
  7. springboot前端传参date类型后台处理方式
  8. java基本数据类型转为String类型的4种常见方法
  9. mysql++多版本安装_MySQL多版本多实例安装启动
  10. mysql数据库操作宠物表_mysql数据库之表的操作