[英]Min function returning max valu and Max function returning min value
我有一个表“ abcd”,列名为“ avg”,值分别为“ 100”和“ 83”。
当我尝试
select max(avg) from abcd -- Returns 83
select min(avg) from abcd -- Returns 100
对我来说似乎很奇怪。 我从未想过我会在SO中发布这样的内容。 看起来可能是一件小事,但是这让我很忙。
我正在使用MySQL和phpMyAdmin
听起来像一个字符串。 一个简单的解决方案是将其转换为数字:
select max(avg + 0)
这将使用“无提示转换”,因此,如果该值不是数字,则不会引发错误。
更好的解决方案可能是将其转换为数据中的实际数字:
alter table t modify column avg int;
(值似乎是整数。)
更改column avg
的datatype
如果您使用varchar
则会在number function
输出错误
使用下面的查询更改column
ALTER TABLE `abcd` CHANGE `avg` `avg` INT(11) NOT NULL;
或尝试这个
SELECT max( cast(avg as unsigned) ) as avg FROM `abcd`
SELECT min( cast(avg as unsigned) ) as avg FROM `abcd`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.