2010-04-16 3 views
0

Может ли кто-нибудь сказать мне, как получить и отобразить самые большие значения из базы данных? У меня есть несколько значений в моей базе данных с заголовком «gmd», но как я могу получить только первые 3 самые большие из них? Как бы я сделать это в этом примере:Как получить и отобразить самые большие значения из базы данных?

$query = "SELECT gmd FROM account"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
} 
+1

Является ли ваш GMD поле число или строка? – Citizen

ответ

5

использовать запрос для заказа и ограничить результаты.

SELECT gmd 
FROM account 
ORDER BY gmd DESC 
LIMIT 3 

Используйте свой массив выборки, чтобы отобразить все результаты.

$query = "SELECT gmd FROM account ORDER BY gmd DESC LIMIT 3"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    echo $row["gmd"]; 
} 
mysql_free_result($result); 
-1

вы так: К сожалению это правильный запрос,

$query = "SELECT gmd FROM account ORDER BY gmd DESC limit 3"; 
+3

Это не имеет смысла. 'max()' является агрегацией по всей таблице. Он будет возвращать только одну строку, всегда. – ryeguy

+0

Я немного разочарован тем, что вы можете получить поддержку за такие явно неправильные ответы. К чему ТАК? :( –

+0

@ d03boy, это толпа мудрости, не означает, что это лучший ответ, но большинство людей принимают то, что они знают. –

1

Для поля, содержащего строки:

SELECT gmd FROM account ORDER BY CHAR_LENGTH(gmd) DESC LIMIT 3 

Для поля, содержащего номера:

SELECT gmd FROM account ORDER BY gmd DESC LIMIT 3 
Смежные вопросы