我有一个查询
SELECT MAX(CAST(user_name as SIGNED)) as max_id FROM (`users`)
它返回
2.01303045556E+12
但实际上最大值是2013030455555
有谁知道怎么回事??
那是对的。
2.01303045556E+12
实际上是2013030455555
。
x E+12
方法x*10 ^ 12
2*10^12=2000000000000
(2 后跟 12 个零)。
这是指数(通常是浮点)数字表示。请参阅wikipedia 上的科学记数法(向下滚动到“E 记数法”)。
要摆脱它,您可以将该数据转换为十进制或整数,而不是浮点数。也许有更好的方法,但我不知道。
例子:
-- example for 16 digits
SELECT MAX(CAST(user_name as DECIMAL(16,0)) as max_id FROM (`users`)
另一种解决方案:在 SQL 或 PHP 中更改数字格式(如果您正在使用它)。