计算“更新”后的排名净变化,MYSQL

时间:2014-01-13 14:11:10

标签: php mysql ranking rank

我有两个MYSQL表:

Table-1

id      catid                   title                   user_rating
123     8                       title-one               3
321     8                       title-two               5

Table-2

listing_id      title                   user_rating
123             title-one               3
321             title-two               5

另外,我有这个查询,根据“user_rating”计算每个“标题”的当前排名。

 SELECT 
    MAX(x.rank) AS rank
 FROM
    (SELECT 
        a.id,
            a.catid,
            a.title,
            b.listing_id,
            @rank:=@rank + 1 AS rank
    FROM
        `table-1` a
    INNER JOIN `table-2` b ON a.id = b.listing_id
    CROSS JOIN (SELECT @rank:=0) r
    WHERE
        catid = '8'
    ORDER BY user_rating DESC) x
WHERE
    id = 123

现在,我的问题:我想在更新“user_rating”值时计算“排名”(排名)的差异。

请注意:“user_rating”值由php脚本更新,允许用户对特定内容进行投票(范围1到5,步骤0.5)。

更新后获得“之前排名”和“当前排名”之间差异的最佳方法是什么?

提前感谢所有人。

0 个答案:

没有答案