关于数据库中Char类型,数值比较的探究
关于数据库中Char类型,数值比较的探究
tab的数据类型的结构
tab的数据
这里有意的将TID这一列的数据类型设置为char(字符类型)。
在升序排序时发生了这样的事情
对比之后的关系为99>98>101
这明显是违背我们的常规逻辑的
经过测试判断,当添加过滤条件WHERE后tid>101时101记录被过滤掉了
当tid>980时98这条记录被过滤掉了。
当tid>990时99这条记录被过滤掉了。
这里我们可以发现当tid这一列数据进行排序时实际是
990>980>101
这种顺序排列就符合了我们的常规逻辑
但是99的数值为什么会变成990呢
这里终于是想起了之前所遗忘的知识
字符串类型对比是每一位都进行对比如果没有的拿0来代替,这也导致了当字符串在对数值进行对比时,时常违法我们的逻辑,因此在数据库中数据类型极为重要,可能会应为数据类型影响我们最终查询的结果