Access 2003 中 null 和 '' 空字符串的奇怪问题

简介: 国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。

 

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址: http://jdb.jiudingcapital.com/phone.html
内部邀请码: C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

最近系统运行中发现Access 2003 版本中对待 Null ‘’ (空字符)奇怪问题,重现步骤:

1、创建表tabTest

2、使用设计视图添加两个字段 ID col1

名称

类型

长度

说明

ID

Number

 

 

主键,自增

Col1

char

1

         

 

3、使用sql 添加如下数据

-- col1 字段设置为 null

INSERTINTO tabtest (id, col1) VALUES(1, NULL);

-- col1 字段设置为 ‘’

INSERTINTO tabtest (id, col1) VALUES(2, '');

-- col1 字段设置为 ‘a’

INSERTINTO tabtest (id, col1) VALUES(3, 'a');

 

4、重新建立查询请求,通过 sql 添加新字段 col2

-- 添加新列col2

ALTERTABLE tabTest ADDCOLUMN col2 CHAR(1);

 

5、使用如下sql 再次向 tabTest 添加新数据

-- col1col2 字段设置为 null

INSERTINTO tabtest(id, col1, col2) VALUES(4, NULL, NULL);

-- col1col2 字段设置为 ‘’

INSERTINTO tabtest(id, col1, col2) VALUES(5, '', '');    

-- col1col2 字段设置为 ‘a’

INSERTINTO tabtest(id, col1, col2) VALUES(6, 'a', 'a');  

 

6、打开 tabTest 检查 Id 5 的数据。神奇的事情发生了。

col1 字段为长度为0 的空字符串,而 col2 为长度为1 的字符

 

 

 

问题:

Q1、为何 ID 2 col1 字段 col2 字段都是长度为 0 的空字符,

        ID 5 col1 字段 col2 字段长度分别为 0, 1 的空字符,

运行如下sql 得到如下结果:

SELECTid, len(col1) AS col1_长度, len(col2) AS col2_长度

  FROM tabtest

 WHEREidIN (2, 5);

 

 

 

Q2、通过如下sql 却能得到ID 5 的记录

SELECT *

  FROM tabtest

 WHERE col1 = ''

   AND col2 = '';

 

 

 

 

目录
相关文章
|
JSON 前端开发 API
【跨域报错解决方案】Access to XMLHttpRequest at ‘http://xxx.com/xxx‘ from origin ‘null‘ has been blocked by
【跨域报错解决方案】Access to XMLHttpRequest at ‘http://xxx.com/xxx‘ from origin ‘null‘ has been blocked by
3547 0
|
SQL Java 数据库
【Mybatis-plus异常】mybatis-plus updateById方法更新不了空字符串和null的解决方法
【Mybatis-plus异常】mybatis-plus updateById方法更新不了空字符串和null的解决方法
696 0
|
7月前
|
移动开发 关系型数据库 MySQL
mysql删除为NULL或者空字符串‘‘或者‘null’的或者删除空格的
mysql删除为NULL或者空字符串‘‘或者‘null’的或者删除空格的
62 1
|
7月前
|
关系型数据库 MySQL
mysql中判断NULL和空字符串
mysql中判断NULL和空字符串
50 0
|
7月前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
231 0
|
JSON Java 数据格式
springboot 接口返回json中null转换成空数组或空字符串(递归+反射实现)
本来想加一个Jackson的配置类修改ObjectMapper实现把null转空字符串或空数组,但是加上之后发现没效果,找不到问题在哪里,不知道是不是我使用@RestControllerAdvice全局返回处理类的问题,所以就自己写了一个工具类方法处理,就在全局返回处理类里面调用
|
JSON fastjson 数据格式
fastjson生成json时Null转为空字符串““或者不展示问题解决
fastjson生成json时Null转为空字符串““或者不展示问题解决
1589 0
|
JSON Java fastjson
SpringBoot业务开发 04、Springboot统一处理null为空字符串
SpringBoot业务开发 04、Springboot统一处理null为空字符串
SpringBoot业务开发 04、Springboot统一处理null为空字符串
|
SQL Oracle 关系型数据库
Sql 语句空字符串和NUll值的区别及使用技巧
Sql 语句空字符串和NUll值的区别及使用技巧
809 0
Sql 语句空字符串和NUll值的区别及使用技巧
|
Java Spring 自动驾驶
java面试题:你可以在Spring中注入一个null和一个空字符串吗?
java面试题:你可以在Spring中注入一个null和一个空字符串吗?
java面试题:你可以在Spring中注入一个null和一个空字符串吗?