Вывод из базы данных шести наибольших значений?

163
15 декабря 2016, 15:56

Как вывести из базы данных шесть самых больших значений? Почему то вот это не работает и выводит в виде?

555553
422154
35355353
300
1234134
123412

Вот код, который осуществляет выборку

$query = "SELECT * FROM `DBTop` ORDER BY `col_vo` DESC LIMIT 6";
$TOP = mysql_query($query, $db) or die(mysql_error());
if(mysql_num_rows($TOP) > 5){
  while($sTOP = mysql_fetch_assoc($TOP)){
    echo $sTOP['col_vo'] . "<br />";
  }
} else {
   echo 'лол';
}
Answer 1

Ваше поле "col_vo" представляется как текстовое (по-моему, даже, и varchar). Запрос адекватен, вот только текстовые поля MySQL сервер сортирует по алфавиту (кодовом значении символов), где "5555" меньше за "6" и "9" больше за "1111".

Обратите внимание на первые цифры (символи): 555553 422154 35355353 300 1234134 123412

Задайте полю тип данных integer и будет Вам счастье :)

READ ALSO
Подзапрос возращает несколько колонок

Подзапрос возращает несколько колонок

ПриветКак поступить если подзапрос возвращает несколько колонок

169
Как убрать collation SQL?

Как убрать collation SQL?

Как в PHPMYADMIN убрать из поля varchar/text столбик collation, потому что когда он есть, у меня добавляются нулевые значения в строке

183
Вывести несколько значений SQL в PHP

Вывести несколько значений SQL в PHP

Как одним запросом SQL вывести несколько значений из строк, одного столбца, то есть допустим есть таблица users, в ней idКак вывести все id, используя...

136
Do while не передает значение в новый for

Do while не передает значение в новый for

И как сделать правильно?

141