1、创建测试表:

drop table if exists tab_null_operator;

create table tab_null_operator as

select 1 as id,'chavin' as name union all

select 2 as id,'nope' as name union all

select 3 as id,'' as name union all

select 4 as id,'' as name union all

select 5 as id,null as name union all

select 6 as id,null as name union all

select 7 as id,' ' as name union all

select 8 as id,' ' as name union all

select 9 as id,'    ' as name union all

select 10 as id,'    ' as name

;

2、查看数据:

mysql> select * from tab_null_operator;

+----+--------+

| id | name   |

+----+--------+

|  1 | chavin |

|  2 | nope   |

|  3 |        |

|  4 |        |

|  5 | NULL   |

|  6 | NULL   |

|  7 |        |

|  8 |        |

|  9 |        |

| 10 |        |

+----+--------+

10 rows in set (0.00 sec)

小结:从结果我们可以看出,id in (5,6)的两个值是null,id in (1,2)的是字符串,id in (3,4,7,8,9,10)从结果看均是空字符串,实际id in (3,4)是空字符串,id in (7,8)是单个空格字符串,id in (9,10)是\t字符串。

3、查询name为null的记录:

mysql> select * from tab_null_operator where name is null;

+----+------+

| id | name |

+----+------+

|  5 | NULL |

|  6 | NULL |

+----+------+

2 rows in set (0.00 sec)

小结:可以看到只有id in (5,6)的记录name字段才是真正的null。

4、查询name为''的记录信息:

mysql> select * from tab_null_operator where name = '';

+----+------+

| id | name |

+----+------+

|  3 |      |

|  4 |      |

|  7 |      |

|  8 |      |

+----+------+

4 rows in set (0.00 sec)

小结:可以看到我们输入的以空格为字符串的值都表现为空字符串。然后\t字符串的缺没有筛选出来。

5、查询\t字符串的数据:

mysql> select * from tab_null_operator where name = '   ';

+----+------+

| id | name |

+----+------+

|  9 |      |

| 10 |      |

+----+------+

2 rows in set (0.00 sec)

SQL之NULL值的几种处理方式的更多相关文章

  1. 让索引包含null值的两种方法

    1. 把有NULL值的列与一个常数,或者一个带有not null约束的列一同索引 create index ind_01 on t01(col01,1); 或者 create index ind_01 ...

  2. SQL中NULL值

    SQL的表达式,除了IS NULL和NOT NULL以外,只要出现NULL值结果都为FALSE 简单的例子: SELECT * FROM table WHERE name!='abc' 只要name值 ...

  3. SQL Server NULL值用法及处理详解

    用法如下: 1.如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录,这意味着该字段将以 NULL 值保存. 2.NULL 用作未知的或不适用的值的占位符. 3.定 ...

  4. SQL SERVER NULL值和连接注意问题

    联接表的列中的 null 值(如果有)互相不匹配.如果其中一个联接表的列中出现空值,只能通过外部联接返回这些空值(除非 WHERE 子句不包括空值).   下面的两个表中,每个表中要参与联接的列中均包 ...

  5. sql 将Null 值转化成空字符串

    当Null + 任何字符串时,都等于Null. 因些用函数IsNull(字段名,''),如果字段名中的值是Null时,那么这个字段名的值是''. 例如::select code + IsNull('- ...

  6. sql处理null值

    IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值. select (case when ...

  7. magento 列表页显示产品属性值的几种调用方式

    之前有人提到要在列表显示一些特定的属性,除了自带的名字,价格等.因为列表页和产品页都有一个同名的产品对象:$_product,而在产品页,$_product是直接可以用$_product->ge ...

  8. SQL 多表查询的几种连接方式

    --创建数据库 create database GoodsSystem go --使用数据库 use GoodsSystem go --创建商品类型表 create table GoodsType ( ...

  9. SQL NULL 值【摘自W3C】

    SQL NULL 值 本章讲解 IS NULL 和 IS NOT NULL 操作符. NULL 值是遗漏的未知数据.默认地,表的列可以存放 NULL 值. 如果表中的某个列是可选的,那么我们可以在不向 ...

随机推荐

  1. 迅为iTOP-4418/6818开发板-驱动-IO初始化配置介绍和例程

    对于所有的处理器,pad 一般可以分为两大类:IO(输入输出).Power(VDD 和GDD).类似摄像头 IO.以太网 IO.PWM 的 IO 等等,都可以统称为 IO.一个 IO,有可能能够被配置 ...

  2. POJ 2031 Building a Space Station (计算几何+最小生成树)

    题目: Description You are a member of the space station engineering team, and are assigned a task in t ...

  3. linux中epoll模型

    epoll是linux内核为处理大批量文件描述符而作了改进的poll,是linux下IO复用select/poll的增强版本. 一.epoll的主要接口是: 1.创建 (1)int epoll_cre ...

  4. Python-Django 模型层-多表查询

    多表操作 基于对象的跨表查询(多次查询) 一对一: -正向查询按字段 -反向查询按表名小写 一对多: -正向查询按字段(正向查询一定会查出一个来) -反向查询按表名小写_set.all()(返回结果是 ...

  5. unity setactive的使用

    1.可以用本身移出布局来实现隐藏 2.RawImage的texture的设置生成的一定要及时消除,避免内存泄漏

  6. ionic3 国际化 转义 html

    <div [innerHTML]="assembleHTML(detail)"> import { DomSanitizer } from '@angular/plat ...

  7. pta编程总结1

    7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个符 ...

  8. 华为交换机批量加入 Vlan 方法

    华为交换机单独加入vlan太麻烦,思科有批量加入vlan的方法,华为也有.要求 1~6口划分到vlan2,6~12口划分到vlan3,13~18口划分到vlan4,19~24口划分到vlan5.25, ...

  9. ansible的logging模块用来写日志

    [root@node-1 library]# cat dolog.py #!/bin/env python ANSIBLE_METADATA = { 'metadata_version': 'alph ...

  10. Hbase合并Region的过程中出现永久RIT的解决

    在合并Region的过程中出现永久RIT怎么办?笔者在生产环境中就遇到过这种情况,在批量合并Region的过程中,出现了永久MERGING_NEW的情况,虽然这种情况不会影响现有集群的正常的服务能力, ...