テーブルに、フィールドvotes_up
やvotes_down
その他のアイテムのリストがあります。ここで、この2つのフィールドの関数である人気に基づいてアイテムを注文したいと思います。問題は、人気のあるアルゴリズムがの値に依存していることですvotes_up
。
たとえば、votes_up
5より大きい場合:
popularity= (votes_up/votes_down)*20
投票数が50より大きい場合:
popularity= (votes_up/votes_down)*15
(これを使って説明しました。実際のアルゴリズムは異なります)。
通常、クエリでは次のようなことを行うため、これをどのように行うことができますか。
ORDER BY (votes_up/votes_down)*20)
ORDER BY
しかし、その後に続くものはの値に依存しているため、今はこれを行うことができませんvotes_up
。私がこれを行うことができる唯一の方法は次のとおりです。
if(votes_up >5){
p = (votes_up/votes_down)*20;
} else if(votes_up > 50){
p = (votes_up/votes_down)*15;
}
それから私のクエリで私は持つことができますORDER BY p
。
もちろん、これは有効なPHPではありませんが、問題について説明したいと思います。私が達成したいことをご理解いただければ幸いです。