2016-09-04 2 views
1

В принципе у меня есть:Получение максимального значения столбца в MySQL

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

Я хочу, чтобы получить максимальное значение моего телефона столбца, который 120110117116105000137000000000000001

, но когда я пытаюсь SELECT MAX(PHONE) FROM TableName; я случайно получить 780799870, как мой result,

+0

Я подозреваю, что вы просто после MAX (ДЛИНА()) – Strawberry

ответ

1

Вы сохраняете значение в виде строки, что неудивительно, учитывая, что числа так длинны.

Вот простой способ, чтобы получить запись с максимальным значением, при условии, что число никогда не начинают с ведущими нулями (которые могут быть легко включены):

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

Это просто предложение, так позвольте мне знаю, если не работает.

Вы должны бросить varchar в целое, чтобы получить максимум:

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

нет, не работал, результат был третьим один – john

+0

Тип данных, вероятно, переполнен. – dotancohen

Смежные вопросы