2012-05-04 2 views
1

Мне нужно получить две части информации из таблицы: наибольшее значение из одного поля и самой последней записи. Меня не волнуют все остальные предметы. Два поля, о которых идет речь, - это оценка и время. Есть ли способ избежать выполнения двух отдельных запросов?MYSQL/PHP Наивысшие значения двух полей: нужны два запроса?

"SELECT score FROM scores ORDER BY score DESC limit 1" gives highest score. 
"SELECT whenadded FROM scores ORDER BY whenadded DESC limit 1" gives most recent. 

Однако есть ли способ сделать один запрос и захватить эти две части информации? Два вопроса кажутся чрезмерными для такой мелочи. Спасибо

ответ

9
SELECT MAX(score), MAX(whenadded) FROM scores 

Это должно сработать.

+1

Хотя, может быть преимущество делать запросы по отдельности, если индексы разделены. Это решение было бы хорошо с индексом с несколькими столбцами как по счету, так и по приложению. –

+0

Как бы я получил эти значения впоследствии? Я просто попытался использовать while ($ row = mysql_fetch_array ($ res)), используя $ row ['score'] и $ row ['whenadded'], и он, похоже, не получил значения. – user1260310

+1

@ user1260310 Возможно, улучшенный ответ будет использовать псевдонимы столбцов, но в качестве этого решения вам нужно использовать '$ row ['MAX (score)']' и '$ row ['MAX (whenadded)']'. –

1

Вы можете найти максимальное значение для очков и максимума для whenadded

SELECT Max(score), Max(whenadded) FROM scores 
Смежные вопросы