Mysql создает топ-10 - PullRequest
       1

Mysql создает топ-10

1 голос
/ 09 декабря 2011

У меня большая база данных, полная информации, и я использую следующий запрос для выбора необходимой мне информации.

$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model LIKE '%16GB%'") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

В результате у меня получается около 250 результатов, я использую цикл while и отображаю [tr] для каждого результата.Теперь я хочу создать первую десятку.Вот что я придумал:

$monthavg = ($row['price_shipping'] / $row['abo_time']) + ($row['price'] / $row['abo_time']) + $row['abo_price'];

Так что теперь я могу повторить $ monthavg, и это хороший способ получить первую десятку.Что я хотел бы сделать, так это просто показать 10 строк [tr] с самым низким значением $ monthavg.Но я уже вывел таблицу на экран.

Мой вопрос: могу ли я создать топ-10 своей базы данных и отобразить только эти 10 результатов?

1 Ответ

3 голосов
/ 09 декабря 2011

У вас уже есть ответ, просто повторите запрос с вашим вычислением в виде столбца, затем упорядочите по этому столбцу и ограничьте его первыми 10 результатами

SELECT *, (price_shipping / abo_time + price / abo_time + abo_price) AS month_avg 
FROM db WHERE model LIKE '%iphone 4%' AND model LIKE '%16GB%'
ORDER BY month_avg ASC LIMIT 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...