2015-01-20 4 views
-1

Возможно, это вопрос, на который можно ответить в одной строке, но буквально я НЕ смог найти его через два часа.Mysql max не работает

<?php 

$con = mysql_connect("localhost","root",''); 
if(!$con){ 
    die('could not connect'.mysql_error()); 
} 
@mysql_select_db("uni",$con) or die("Unable to select db"); 

$query = "SELECT MAX(grade) AS HighestPrice from grades"; 
$res = mysql_query($query); 
if(!$res){ 
    echo mysql_error(); 
    exit; 
} 
else{ 

while($row = mysql_fetch_assoc($res)) { 
    echo "The max num is ". $row['HighestPrice']."this is it"; 
} 
} 

Что я хочу, чтобы оно возвращалось, это таблица максимальных оценок. ИСПОЛЬЗУЙТЕ максимальную команду. Просто упомянуть, что вся команда sql, которую я хочу сделать, также должна иметь мин, поэтому, если это возможно, добавьте это тоже, было бы весьма полезно.

+0

Что не работает? Что происходит? Ошибки? Как выглядит ваш вывод в ваших инструментах sql? И о, не используйте mysql_ *. Зачем? Простой поиск расскажет вам. – Jonast92

+0

"Не работает". Почему это не работает? Вы получили сообщение об ошибке? Сбой MySQL? Сбой сервера? Начинает ли загрузка спама? Создание странных шумов? Он загорается? Этот пост похож на меня, размещая фотографию моей машины и спрашивая: «Это не сработает». – h2ooooooo

+0

закажите по убыванию и возьмите первый предмет. – Dreamwalker

ответ

1

Ваш тип столбца был VARCHAR, и поэтому строка - не целое число. При использовании MAX() они обрабатываются по-разному.

От documentation:

Возвращает максимальное значение выраж. MAX() может принимать строковый аргумент; в таких случаях он возвращает максимальное строковое значение. См. Раздел 8.5.1 «Как MySQL использует индексы». Ключевое слово DISTINCT можно использовать для нахождения максимума различных значений expr, однако это дает тот же результат, что и исключение DISTINCT.

Чтобы это исправить, просто преобразовать столбец в TINYINT, SMALLINT, INT, BIGINT или DECIMAL в зависимости от потребностей.

Если у вас всегда будет целое число без десятичных знаков, используйте один из типов INT (независимо от ваших потребностей).

Вот таблица из here так что вы можете выбрать правильный тип для столбца:

enter image description here