MySQL NULL处理
-- 首先在用户表中插入数据如下
TRUNCATE TABLE UserInfo ;
INSERT INTO `userinfo`(`ID`,`UserName`,`UserLogin`,`UserPassword`,`UserEmail`,`UserType`)
VALUES (1,'张三','zhangsan','zhangsan','zhangsan@qq.com',1),
(2,'李四','lisi','lisi','lisi@qq.com',2),
(3,'王五','wangwu','wangwu','wangwu@qq.com',1),
(4,'赵六','zhaoliu','zhaoliu','zhaoliu@qq.com',3),
(5,'赵六','zhaoliu1','zhaoliu1','zhaoliu1@qq.com',3),
(6,NULL,'test1','test1',NULL,NULL),
(7,NULL,'test2','test2',NULL,NULL),
(8,NULL,'test3','test3',NULL,NULL),
(9,'','TEST5','TEST5','',1),
(10,'','TEST6','TEST6','',2),
(11,'','TEST7','TEST7','',3),
(12,'','TEST8','TEST8','',1),
(13,'','TEST9','TEST9','',2),
(14,'','TEST0','TEST0','',3);

-- 查询用户名为空(null)的用户信息
SELECT * FROM UserInfo WHERE userName IS NULL ;

SELECT * FROM UserInfo WHERE ISNULL(UserName) ;

-- 查询用户名为空字符串('') 的用户信息
SELECT * FROM UserInfo WHERE UserName ='' ;

-- 查询用户名为 不为空(null)的用户信息 !=null 和 is not null 是不同的 默认情况下 !=null 返回0行结果
筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实运行结果差别很大!
null 表示什么也不是, 不能=、>、< … 所有的判断,结果都是false,所有只能用 is null进行判断。默认情况下,推荐使用 is not null去判断,因为SQL默认情况下对 !=null 的判断会永远返回0行,但没有语法错误;
SELECT * FROM UserInfo WHERE userName IS NOT NULL ;

SELECT * FROM UserInfo WHERE UserName != NULL ;

-- 查询用户名 不为空字符串('') 并且不为空(null) 的用户信息
SELECT * FROM UserInfo WHERE UserName <> '' ;

-- 还有一个问题就是count(columnName)函数是不统计null值的
SELECT COUNT(*) FROM UserInfo ;

SELECT COUNT(UserName) FROM UserInfo ;

-- IFNULL函数使用
-- IFNULL(expr1,expr2) 如果expr1不是NULL,返回expr1,否则它返回expr2。
SELECT *,IFNULL(UserName,'无效用户') AS Remark FROM UserInfo

SELECT IFNULL(0,1) ;

SELECT IFNULL(0/1,'代替null') ;.

SELECT IFNULL(1/0,'代替null') ;

-- 扩展IF函数
-- IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1<>0且expr1<>NULL),返回expr2,否则它返回expr3。
SELECT IF(TRUE,'true值','false值') ;

SELECT IF(FALSE,'true值','false值') ;

SELECT IF(1>2,1,2) ;

SELECT IF(1<2,2,1) ;

MySQL NULL处理的更多相关文章
- MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了 ...
- Oracle 与 Mysql NULL值,空字符串''的区别
Oracle(null等同于空字符'') 1.oracle插入空字符串默认替换成null 2.oracle查询(null和被替换的空字符)时使用 is null/is not null 3.使用聚合函 ...
- 二十一、MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. ...
- DB-MySQL:MySQL NULL 值处理
ylbtech-DB-MySQL:MySQL NULL 值处理 1.返回顶部 1. MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数 ...
- MySQL NULL 使用带来的坑
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- mysql NULL函数 语法
mysql NULL函数 语法 作用:如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录.这意味着该字段将以 NULL 值保存. 说明:NULL 值的处理方式与其 ...
- mysql null值处理详细说明
在讲null之前,我们先看一个例子 表数据如下: 3306>select * from t1; +------+-------+ | id | name | +------+-------+ | ...
- mysql=null的优雅解决方法
对于不是采用所有字段都是not null的mysql表设计而言,mysql提供了一个<=>操作符. 在oracle中我们的处理方式通常类似: where a = #{var} or #{v ...
- mysql null值的特殊处理
实例 尝试以下实例: root@host# mysql -u root -p password; Enter password:******* mysql> use RUNOOB; Databa ...
- mysql null值问题
mysql> create table test( sn int, -> `createdTime` datetime NOT NULL COMMENT '创建时间', -> `up ...
随机推荐
- centos下问题:connect:network is unreachable
问题描述 弄了三台机器准备搭建一个集群,按照centos7系统,一台主节点安装桌面环境,两台计算节点.配置计算节点的时候,发现ping不通,出现connect:network is unreachab ...
- 对空间数据(Shape)重新排序
打开ArcToolBox,数据管理工具->常规(General)->排序
- MVC设置启动页
设置启动页需要在路由中添加一段代码: public static void RegisterRoutes(RouteCollection routes) { rou ...
- 四十一、Linux 线程——线程同步之条件变量
41.1 概念 41.1.1 条件变量的介绍 互斥锁的缺点是它只有两种状态:锁定和非锁定 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足 条件变量内部是一个等待队列,放置等待 ...
- mysql比较运算符和函数
mysql> SELECT 15 BETWEEN 1 AND 22;+---------------------+| 15 BETWEEN 1 AND 22 |+---------------- ...
- 关于MySQL数据库——增删改查语句集锦
一.基本的sql语句 CRUD操作:create 创建(添加)read 读取update 修改delete 删除 1.添加数据insert into Info values('p009','张三',1 ...
- B - 签到题
计算机系统中使用的UTC时间基于原子钟,这种计时方式同“地球自转一周是24小时”的计时方式有微小的偏差.为了弥补这种偏差,我们偶尔需要增加一个“闰秒”. 最近的一次闰秒增加发生在UTC时间2016年的 ...
- Apache的域名配置
配置独立域名有什么好处呢?我们在本地做程序开发,要同时用很多开源程序.CMS.框架,或者自己写的管理系统,那么给他们每一个都配置一个独立的域名,在测试的时候只要在浏览器输入设置好的域名就可以了,非常方 ...
- 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用
[网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...
- MySql数据库学习笔记(1)
MySql数据库 下载地址 https://dev.mysql.com/downloads/mysql/5.1.html#downloads 连接到本机上的MYSQL mysql -u root -p ...