2011-12-15 10 views
0

私はSQLクエリの外側のアルゴリズムに基づいてdbクエリの結果を注文しようとしています。dbクエリの外でアルゴリズムの結果で行を並べ替え

たとえば、各行にはauthor_karmapageviewsの列があります。私は

アルゴリズムは、これが算出されるハッカーのニュースのようなサイトでこの

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

のように見えるかもしれません...行がフェッチされた後、PHPで計算アルゴリズムによって、結果を注文したいのですがSQLクエリ?彼らはどのようにこの仕事をするのですか? dbにスコアを格納しようとすると、それを更新する頻度(特に、時間がスコアに関係する場合)はどれですか?

+0

でそれを行うことができます。したがって、ORDER BY句でその関数を使用するだけです。 –

+0

関連するコードを投稿することができれば間違いなく助けになるでしょう...事実の後にPHPと対話するのではなく、MySQLでこれをソートすることができるかもしれません。 – Nonym

+0

@BrianHoover上記のような非常に単純なアルゴリズムの場合、 'order by'でそれを行うか、dbにスコアを格納する方が良いでしょうか? –

答えて

2

あなたは簡単にあなたは、ほぼすべてのデータベース内の関数で注文することができ、クエリ

select this, that, other, (author_karmar + (pageviews/100) + age) as score from table order by score desc 
関連する問題