基本上我有:
TableName
___________________________________________________________
| Amount | ID | Phone VARCHAR(45) |
-------------------------------------------------------------
| 1 | Jack | 780799870 |
| 2 | fob | 121234567116105000137000000000000001|
| 3 | AliClay | 178234791827498789 |
-------------------------------------------------------------
我希望获得手机栏的最大值120110117116105000137000000000000001
但是当我尝试SELECT MAX(PHONE) FROM TableName;
时,我的结果恰好是780799870
,
答案 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