关于数据库中Char类型,数值比较的探究

关于数据库中Char类型,数值比较的探究

tab的数据类型的结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLQNrRyv-1578017471245)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200103094621741.png)]

tab的数据

在这里插入图片描述

这里有意的将TID这一列的数据类型设置为char(字符类型)。

在升序排序时发生了这样的事情
在这里插入图片描述

对比之后的关系为99>98>101

这明显是违背我们的常规逻辑的

经过测试判断,当添加过滤条件WHEREtid>101时101记录被过滤掉了

tid>980时98这条记录被过滤掉了。

tid>990时99这条记录被过滤掉了。

这里我们可以发现当tid这一列数据进行排序时实际是

990>980>101

这种顺序排列就符合了我们的常规逻辑

但是99的数值为什么会变成990呢

这里终于是想起了之前所遗忘的知识

字符串类型对比是每一位都进行对比如果没有的拿0来代替,这也导致了当字符串在对数值进行对比时,时常违法我们的逻辑,因此在数据库中数据类型极为重要,可能会应为数据类型影响我们最终查询的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值