从此查询创建视图

时间:2014-02-11 20:08:51

标签: mysql sql view

以下查询

  1. 显示完整排名的结果,但显示第二个查询

  2. 不在mysql中创建视图。

  3. 如何在下面创建查询视图?我尝试了很多方法,但无法弄明白。

    1

    SELECT @rownum := @rownum + 1 AS rank, name, vote 
    FROM uservotes, (SELECT @rownum := 0) t ORDER BY vote DESC
    

    2

    declare @rownum int
    
    CREATE VIEW V AS SELECT @rownum := @rownum + 1 AS rank, name, vote 
    FROM uservotes, (SELECT @rownum := 0) t ORDER BY vote DESC
    

1 个答案:

答案 0 :(得分:1)

不幸的是,您无法在VIEW中使用用户变量。你必须以艰难的方式创建它,可能是这样的:

CREATE VIEW V AS 
SELECT COUNT(y.*) as rank, x.name, x.vote
FROM uservotes x 
JOIN uservotes y 
  ON y.votes >= x.votes
GROUP BY x.some_unique_column
ORDER BY x.vote DESC

这比原始查询慢一点。

请注意,rank具有相同投票的2个条目相同,如果您不希望这样,则需要子查询或额外的ON子句来决定平局。