Home > Database > Mysql Tutorial > Oracle数据库模糊查询语句一个容易忽略的结果:空记录

Oracle数据库模糊查询语句一个容易忽略的结果:空记录

WBOY
Release: 2016-06-07 17:14:38
Original
1851 people have browsed it

原因: 使用SQL语句如下: select count(*) from test; 结果为1390. select count(*) from test where bb not like ‘%禁用%

原因:

使用SQL语句如下:

select count(*) from test;

结果为1390.

select count(*) from test where bb not like ‘%禁用%'

结果为393.

实际浏览过程中发现未禁用结果集肯定超过393条记录。

过程:

1、首先怀疑字符集的问题,也许是客户端字符集与服务器字符集不匹配。在别人的机器上使用上述SQL语句后,反反复复,类似替换,结果都相同。

2、仍然怀疑是字符集的问题,颠三倒四没有发现问题真实原因,几近抓狂。

3、偶然发现bb字段有许多为空,,仔细分析一下,发现bb not like '%禁用%'不会匹配空记录,于是改为

select count(*) from test where bb not like ‘%禁用%' or bb is null

结果为1356。

结论:

模糊匹配由于不经常使用,所以会导致使用时马虎大意,最终导致人力抓狂。

更多Oracle相关信息见Oracle 专题页面 ?tid=12

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template