Skip to content

Instantly share code, notes, and snippets.

@FrancisVarga
Created March 25, 2011 11:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FrancisVarga/886746 to your computer and use it in GitHub Desktop.
Save FrancisVarga/886746 to your computer and use it in GitHub Desktop.
Generate User highscore
SET @rownum =0;
SET @rank =0;
SET @prev_val=0;
SELECT @rownum := @rownum + 1 AS row
, @rank := IF(@prev_val!=uxp,@rownum,@rank) AS rank
, @prev_val := uxp AS uxp,
userId
FROM
(
SELECT userId, SUM(score) as uxp
FROM highscore_game
GROUP BY userId
ORDER BY uxp DESC
) AS t
ORDER
BY uxp desc
@FrancisVarga
Copy link
Author

How To Use with Zend


 $this->getDatabase()->query("SET @rownum =0;");
 $this->getDatabase()->query("SET @rank =0;");
 $this->getDatabase()->query("SET @prev_val=0;");

  $sqlStmt = "SELECT @rownum := @rownum + 1 AS row, @rank := IF(@prev_val != uxp, @rownum, @rank)
                  AS
                    rank, @prev_val := uxp AS uxp, userId
                  FROM
                     (
                        SELECT userId, SUM(score) as uxp
                        FROM highscore_game
                        GROUP BY userId
                        ORDER BY uxp DESC
                     )
                  AS
                    tbl
                  WHERE
                     tbl.userId=" . $this->getUserId() . "
                  ORDER
                    BY uxp desc
               ";

    $result = $this->getDatabase()->fetchRow($sqlStmt);

    var_dump($result);

Thx to xris

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment