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配置ARP和Tomcat Native
Tomcat Native是用于Tomcat的一个可选组件,能够允许Tomcat使用一定的本地资源.性能.兼容性. 具体来说,Tomcat Native给了Tomcat访问 Apache Portab ...
- 通配符 Globbing赏析
什么是 Globing? https://www.techopedia.com/definition/14392/globbing Definition - What does Globbing ...
- sql server 横向转丛向及FOR XML PATH使用
1.开始数据结构如下: 2.转为如下图: 使用如下SQL语句: ---横向转丛向 select name '姓名', max(case when course='语文' then score end) ...
- 4-24日 collections模块 random模块 time模块 sys模块 os模块
1, collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdi ...
- P2P的原理和常见的实现方式
参考资料:http://www.cppblog.com/peakflys/archive/2013/01/25/197562.html P2P实现的原理 首先先介绍一些基本概念: NAT(Net ...
- linux把文件压缩成.tar.gz的命令
https://blog.csdn.net/qq_27803491/article/details/52785838
- 海洋cms v6.53 v6.54版本漏洞复现
海洋cms v6.53 v6.54版本漏洞复现 参考链接: 今天发现freebuf上一篇海洋cms的漏洞,来复现一下. http://www.freebuf.com/vuls/150042.html ...
- php编程 之 php基础二
1,if...else...语句 规则简介: if 语句 - 在条件成立时执行代码 if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码 if...elseif....e ...
- python,栈的小例子
''' 1.首先确认栈的概念,先进后出 2.初始化的时候如果给了一个数组那么就要将数组进栈 ''' class Stack: def __init__(self,start=[]): self.sta ...
- DataGrid 查不出数据 注意事项
总结以下几条:1.SQL文在数据控中查询成功在写入,表内字段名尽量复制,手打太容易错了.写SQL写错了,没有智能提示.2.DataGrid数据源先绑定.3.检查parameter顺序,条件的顺序也要考 ...