比方說,我有一個這樣的表(這只是一個簡單的例子,我說的是真表要複雜得多):計算表中的行位置
CREATE TABLE media (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
voted INT NOT NULL DEFAULT 0,
rating FLOAT NOT NULL DEFAULT 0
) ENGINE = INNODB;
的投票列表示項目已收到的投票數和評分列代表項目的總評分。現在
,我想要做的就是從表中選擇一個項目根據ID,是這樣的:
SELECT m.* FROM media AS m WHERE id = 5;
但是,除此之外,我想計算該行的基礎上的位置評級列和獲取,作爲一個額外的列,讓我們說一個site_rank(所以行的評級越大,它的site_rank會更高,我希望我解釋得很好)。我的猜測是這可以通過一個子查詢來實現,但我不知道如何去做。
任何幫助?
可能我建議實施一個Site_Rank列,每隔一段時間更新一次?可能會容易得多。 – 2009-08-18 16:42:02
這樣你就可以做一個非常大的數據庫調用(或者幾個更小的調用),然後更新每個調用。然後你不需要做5分鐘的其他事情。 – 2009-08-18 16:43:24