今天犯了一个很严重的错误 哈哈,在MYSQL进行聚合查询的时候 有一个表中的一个字段是varchar
我用
select csv from table-name where conditions
发现可以得到一个最大的数字为:4326
后来吧我就用
select max(csv) from table-name where conditions
发现了哈哈居然为950
我奇怪了,不知道是什么原因?聚合不了吗?
后来问了一个公司同事说是字段类型所造成的哦。
于是我查看了一下果然是varchar类型
于是我就将其转换成数据字类型了
select max(cast(csv as unsigned)) from dbmonitor
可以查出来的哦!
别犯错了啊!
总结一下吧:
我于是又重新创建了一个新的表哦其中有一个字段为varchar类型的。
然后我新插了一些数据进来了
查询看效果:
select score from test
可以得到最大的为11
哈哈
来看看比较吧:
select score from test where score<'4'
居然将11也可以查询出来。昏倒!原来是在比较字符串啊。
于是我又改成
select score from test where score<4
哈哈就可以得到我想要的东西了!
原来MYSQL的自动转换原来如此的。
如果用聚合函数的话其实是处理字符串类型的哦,要先进行类型的转换处理然后才能进行聚合查询操作的!
以后要注意了啊!
阅读(2209) | 评论(1) | 转发(0) |