在mysql中获取最大列值

时间:2016-09-04 20:40:17

标签: mysql

基本上我有:

            TableName
 ___________________________________________________________
| Amount |     ID     |            Phone    VARCHAR(45)     |
-------------------------------------------------------------
|   1    |   Jack     | 780799870                           |
|   2    |   fob      | 121234567116105000137000000000000001|
|   3    |   AliClay  | 178234791827498789                  |
-------------------------------------------------------------

我希望获得手机栏的最大值120110117116105000137000000000000001

但是当我尝试SELECT MAX(PHONE) FROM TableName;时,我的结果恰好是780799870

2 个答案:

答案 0 :(得分:1)

您将值存储为字符串 - 鉴于数字太长,这并不奇怪。

这是一种获取具有最大值的记录的简单方法,假设数字永远不会以前导零开头(可以很容易地包括在内):

select t.*
from tablename t
order by length(phone) desc, phone desc;

答案 1 :(得分:0)

这只是一个提案,请告诉我是否有效。

您应该将varchar强制转换为int以获取最大值:

SELECT
  MAX(CAST(PHONE AS SIGNED))
FROM TableName