2012-03-22 4 views
0

У меня есть таблица с точками столбцов [VARCHAR]Сортировка MySQL VARCHAR столбец с условием, где

Когда я беру запись с точками больше, чем 80 и порядка по точкам в порядке убывания. Я получаю только цифры от 99. На самом деле у меня есть очки больше, чем 100.

Пробовал вариант добавления +0, но странные результаты в порядке возрастания, получает данные из точек с 8

ответ

0

Почему бы не использовать только сделайте ваш points a Integer?

SELECT * FROM таблицы WHERE точки > 80 ORDER BY очки DESC

+0

проблема у меня есть точки как 100.5 –

+1

Вы можете сделать ее десятичной (10,2), где 10 - это насколько вам нужна левая часть вашего числа с плавающей запятой, а 2 - правильная ширина. – Josh

+0

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

3

Поскольку этот столбец varchar сравнения для сортировки и где положения выполняются по алфавиту, а не численно. Это означает «80»> «100», потому что «8» < '1'. Вам необходимо преобразовать этот столбец в integer. Используйте CAST(points AS INTEGER) вместо простых точек.