我需要在表格中存储整数和十进制数字,例如:
9 , 1, 10.00 , 2 , 100.10
为此,我选择了varchar。但问题是我不能应用max()函数,因为它返回9 instead of 100.10
是数据类型varchar。在这种情况下我该怎么办?
请帮忙!!
谢谢!!!
答案 0 :(得分:0)
使用MySQL中提供的Numeric Types之一。在您的情况下,NUMERIC
,例如DECIMAL
或FLOAT
或fixed point type,例如{{1}}是合适的。
答案 1 :(得分:0)
变量字符数据类型对于存储字母数字字符而非数字非常有用,这就是为什么它会读取列表中最大的第一个字符(9)。尝试使用float而不是
答案 2 :(得分:0)
答案 3 :(得分:0)
将值存储在varchar中,然后将值转换为Decimal
,如
SELECT MAX( CAST( mycolumn AS DECIMAL(10,5) )) FROM `mytable`
答案 4 :(得分:0)
我认为您不需要将这些数字存储为varchar。你还有其他原因吗?为了保持算术,将所有数字存储为十进制不是更好吗?
DECIMAL(5,2)
其中5是最大位数,2是小数点后的位数,将覆盖问题中的示例数字。整数9将存储为9.00