Выберите Макс из таблицы вопросов - PullRequest
3 голосов
/ 21 декабря 2011

У меня есть набор данных, таких как:

Id           Name
==           ======
1            name1
10           name10
2            name2
3            name3
4            name4
5            name5
6            name6
7            name7
8            name8
9            name9

Если я напишу , выберите max (id) из таблицы , возможно, вы вернете мне 10 в качестве максимального значения, верно? Почему я всегда получаю результат 9 вместо 10? что не так?

Ответы [ 2 ]

8 голосов
/ 21 декабря 2011

Предположительно Id - это строка, а не числовой тип данных.

Вы должны изменить его на более подходящий тип данных, такой как integer.

Если это невозможно, вам необходимо выполнить приведение к числовому типу данных.например, MAX(CAST(Id AS UNSIGNED)), но я предлагаю исправить это.

4 голосов
/ 21 декабря 2011

Полагаю, ваш столбец Id не числовой, а varchar, поэтому он сортирует по алфавиту, а не по цифрам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...