如题所述,在 MySQL 中非常大的数字(varchar 类型保存)如何比较大小呢?
吾辈试了一下貌似 cast()
与 convert()
函数转换的数字都有最大值,而直接比较字符串的大小会有问题,所以有什么好的解决方法么?
附:网络上也有下面这种方法
SELECT ('4294967295000000000000000000000000000000000000000000000000' + 0) >
('4294967295000000000000000000000000000000000000000000000000' + 1);
但结果无论如何都是 0。。。所以还是没用!
我在mysql 5.6.35版本做的测试:
1、首先只运行下面的语句:
结果是 4.294967295e57
2、接着运行两个数字比较的语句:
结果是1
综合以上测试结果,说明两个的字符串表示的数字是可以比较的。