1. MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
  2. 为了处理这种情况,MySQL提供了三大运算符:
  3. IS NULL: 当列的值是 NULL,此运算符返回 true
  4. IS NOT NULL: 当列的值不为 NULL, 运算符返回 true
  5. <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true
  6. 关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL != NULL 在列中查找 NULL
  7. MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false
  8. MySQL 中处理 NULL 使用 IS NULL IS NOT NULL 运算符。
  9. select * , columnName1+ifnull(columnName2,0) from tableName;
  10. columnName1columnName2 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null ifnull(columnName2,0) columnName2 null 值转为 0
  1. 在命令提示符中使用 NULL
  2. 以下实例中假设数据库 RUNOOB 中的表 runoob_test_tbl 含有两列 runoob_author runoob_count, runoob_count 中设置插入NULL值。
  3. root@host# mysql -u root -p password;
  4. Enter password:*******
  5. mysql> use RUNOOB;
  6. Database changed
  7. mysql> create table runoob_test_tbl
  8. -> (
  9. -> runoob_author varchar(40) NOT NULL,
  10. -> runoob_count INT
  11. -> );
  12. Query OK, 0 rows affected (0.05 sec)
  13. mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('RUNOOB', 20);
  14. mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('Google', NULL);
  15. mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('FK', 20);
  16. 以下实例中你可以看到 = != 运算符是不起作用的:
  17. mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count = NULL;
  18. Empty set (0.00 sec)
  19. mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count != NULL;
  20. Empty set (0.01 sec)
  21. 查找数据表中 runoob_test_tbl 列是否为 NULL,必须使用 IS NULL IS NOT NULL,如下实例:
  22. mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
  23.  
  24. mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
  1. 使用 PHP 脚本处理 NULL
  2. PHP 脚本中你可以在 if...else 语句来处理变量是否为空,并生成相应的条件语句。
  3. 以下实例中 PHP 设置了 $runoob_count 变量,然后使用该变量与数据表中的 runoob_count 字段进行比较:
  4. <?php
  5. $dbhost = 'localhost:3306'; // mysql服务器主机地址
  6. $dbuser = 'root'; // mysql用户名
  7. $dbpass = ''; // mysql用户名密码
  8. $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
  9. if(! $conn )
  10. {
  11. die('连接失败: ' . mysqli_error($conn));
  12. }
  13. // 设置编码,防止中文乱码
  14. mysqli_query($conn , "set names utf8");
  15.  
  16. if( isset($runoob_count ))
  17. {
  18. $sql = "SELECT runoob_author, runoob_count
  19. FROM runoob_test_tbl
  20. WHERE runoob_count = $runoob_count";
  21. }
  22. else
  23. {
  24. $sql = "SELECT runoob_author, runoob_count
  25. FROM runoob_test_tbl
  26. WHERE runoob_count IS NULL";
  27. }
  28. mysqli_select_db( $conn, 'RUNOOB' );
  29. $retval = mysqli_query( $conn, $sql );
  30. if(! $retval )
  31. {
  32. die('无法读取数据: ' . mysqli_error($conn));
  33. }
  34. while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
  35. {
  36. echo "<tr>".
  37. "<td>{$row['runoob_author']} </td> ".
  38. "<td>{$row['runoob_count']} </td> ".
  39. "</tr>";
  40. }
  41. echo '</table>';
  42. mysqli_close($conn);
  43. ?>

吴裕雄--天生自然MySQL学习笔记:MySQL NULL 值处理的更多相关文章

  1. 吴裕雄--天生自然python学习笔记:Python MySQL - mysql-connector 驱动

    本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器. 我们可以使用 pip 命令来安装 mysql-c ...

  2. 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告

    实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...

  3. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

  4. 吴裕雄--天生自然python学习笔记:Python3 MySQL 数据库连接 - PyMySQL 驱动

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  5. 吴裕雄--天生自然HADOOP学习笔记:使用yum安装更新软件

    实验目的 了解yum的原理及配置 学习软件的更新与安装 学习源代码编译安装 实验原理 1.编译安装 前面我们讲到了安装软件的方式,因为linux是开放源码的,我们可以直接获得源码,自己编译安装.例如: ...

  6. 吴裕雄--天生自然HADOOP学习笔记:基本环境配置

    实验目的 学习安装Java 学习配置环境变量 学习设置免密码登陆的方法 掌握Linux环境下时间同步的配置 实验原理 1.Java的安装 java是大数据的黄金语言,这和java跨平台的特性是密不可分 ...

  7. 吴裕雄--天生自然HADOOP学习笔记:Shell工具使用

    实验目的 学习使用xshell工具连接Linux服务器 在连上的服务器中进入用户目录 熟悉简单的文件操作命令 实验原理 熟悉shell命令是熟悉使用linux环境进行开发的第一步,我们在linux的交 ...

  8. 吴裕雄--天生自然python学习笔记:python 用pyInstaller模块打包文件

    要想在没有安装 Python 集成环境的电脑上运行开发的 Python 程序,必须把 Python 文件打包成 .exe 格式的可执行 文件. Python 的打包工作 PyInstaller 提供了 ...

  9. 吴裕雄--天生自然python学习笔记:python 用pygame模块动画一让图片动起来

    动画是游戏开发中不可或缺的要素,游戏中的角色只有动起来才会拥有“生命”, 但动画处理也是最让游戏开发者头痛的部分.Pygame 包通过不断重新绘制绘图窗口,短短几行代码就可以让图片动起来! 动画处理程 ...

  10. 吴裕雄--天生自然python学习笔记:python 文件批量查找

    在多个文本文件中查找 我们首先来学习文本文件的查找字符 . 我们通过 os.walk 扩大查找范围, 查找指定目录和子目录下的文件. 应用程序总览 读取 当 前目录及子目录下的所有 PY 和 txt ...

随机推荐

  1. Install and Configure NFS Server on RHEL 8 / CentOS 8

    https://computingforgeeks.com/install-and-configure-nfs-server-on-centos-rhel/    

  2. Redis混合存储-冷热数据识别与交换

    Redis混合存储产品是阿里云自主研发的完全兼容Redis协议和特性的混合存储产品. 通过将部分冷数据存储到磁盘,在保证绝大部分访问性能不下降的基础上,大大降低了用户成本并突破了内存对Redis单实例 ...

  3. 08 SSM整合案例(企业权限管理系统):09.用户和角色操作

    04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.权限控制 09.用户和角色操作 10.权限关联 11.AOP日志 09.用户和角色操作 1. 用 ...

  4. Live555研究之一 源代码编译

    Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视频数据的流化 ...

  5. 155-PHP stripos函数

    <?php $str='password'; //定义一个字符串 $position=strpos($str,'S'); //查找字母s第一次出现的位置 echo '字母S的位置是'.$posi ...

  6. 吴裕雄--天生自然C++语言学习笔记:C++ 运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 下表显示 ...

  7. spring boot 连接Mysql介绍

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  8. webpack知识点散记

    1.今天学习webpack  ,刚开头就碰到了钉子,因为现在都是4+的版本,用以前的老命令不好使,如下例子及解决办法 不好用:  webpack3的   打包文件   webpack a.js b.j ...

  9. gcc/g++以c++11的方式编译

    方法一: 在程序头加上预定义编译器命令 #pragma GCC diagnostic error "-std=c++11" 通过#pragma 指示 GCC编译器处理错误的方式以c ...

  10. ZOJ - 3123 Subsequence (滑动窗口)

    题意:给定N个数,求和大于等于S的最短连续子序列的长度. 分析:滑动窗口即可.两种写法. 1. #include<cstdio> #include<cstring> #incl ...