Упорядочить строки по результату алгоритма вне запроса к БД

Я пытаюсь упорядочить результаты запроса к базе данных на основе алгоритма вне инструкции sql.

Например, в каждой строке есть столбцы author_karma и pageviews. Я хотел бы заказать результат по алгоритму, рассчитанному в php после выборки строк...

Алгоритм может выглядеть так

$score = intval($author_karma) + (intval($pageviews)/100) + intval($age)

На таких сайтах, как хакерские новости, это вычисляется в запросе sql? Как они это делают? Если я попытаюсь сохранить счет в базе данных, как часто я буду обновлять его (особенно когда в счете задействовано время)?


person Andrew Samuelsen    schedule 15.12.2011    source источник
comment
Вы можете упорядочить по функции почти во всех базах данных. Таким образом, вы просто используете эту функцию в предложении ORDER BY.   -  person Brian Hoover    schedule 15.12.2011
comment
Это определенно поможет, если вы сможете опубликовать соответствующий код... Так как это может быть возможно отсортировать в MySQL вместо того, чтобы взаимодействовать с PHP постфактум..   -  person Nonym    schedule 15.12.2011
comment
@BrianHoover Для довольно простого алгоритма, подобного приведенному выше, лучше ли сделать это в order by или сохранить счет в БД?   -  person Andrew Samuelsen    schedule 15.12.2011
comment
@AndyPandy - я бы, вероятно, сделал это в порядке просто потому, что все эти значения будут меняться довольно регулярно.   -  person Brian Hoover    schedule 15.12.2011


Ответы (1)


Вы можете легко сделать это в запросе

select this, that, other, (author_karmar + ( pageviews/100 ) + age ) as score from table order by score desc
person Galen    schedule 15.12.2011