我有一个表“d”,列名为“avg”,值为“100”和“83”。当我尝试的时候
select max(avg) from abcd -- Returns 83 select min(avg) from abcd -- Returns 100
我觉得很奇怪。我从来没有想过,我会张贴这样的东西,所以。这可能是一件小事,但它踢出我的一天来解决它。我正在使用mysql和phpmyadmin
b91juud31#
更改 datatype 你的 column avg 如果你使用 varchar 它的输出错误 number function 使用下面的查询更改 column ```ALTER TABLE abcd CHANGE avgavg INT(11) NOT NULL;
datatype
column avg
varchar
number function
column
abcd
avg
或者试试这个
SELECT max( cast(avg as unsigned) ) as avg FROM abcdSELECT min( cast(avg as unsigned) ) as avg FROM abcd
acruukt92#
听起来像一根弦。一个简单的解决办法是把它变成一个数字:
select max(avg + 0)
它使用“静默转换”,因此如果值不是数字,则不会引发错误。更好的解决方案可能是将其转换为数据中的实际数字:
alter table t modify column avg int;
(这些值似乎是整数。)
2条答案
按热度按时间b91juud31#
更改
datatype
你的column avg
如果你使用varchar
它的输出错误number function
使用下面的查询更改column
```ALTER TABLE
abcd
CHANGEavg
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
acruukt92#
听起来像一根弦。一个简单的解决办法是把它变成一个数字:
它使用“静默转换”,因此如果值不是数字,则不会引发错误。
更好的解决方案可能是将其转换为数据中的实际数字:
(这些值似乎是整数。)