我已经看过各种SO问题,如何进行计数和排名。我的数据库中有一个名为vDestination的字段,我想获得每个目的地的数量和排名。我正在使用Codeigniter。我有以下几点:

$sql = ("SET @curRank := 0;\r\n
            SELECT vDestination, COUNT(*) AS count, @curRank := @curRank + 1 AS rank FROM tbl_user_trip ORDER BY vDestination");


在我看来,这看起来像是有效的SQL语法,但我不断收到数据库错误。有人可以向我指出此查询出了什么问题吗?


  发生数据库错误
  错误号:1064
  
  您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第3行的'SELECT vDestination,COUNT(*)AS count,@curRank:= @curRank + 1 AS rank FROM tb'附近使用

SET @curRank := 0;
SELECT vDestination, COUNT(*) AS count, @curRank := @curRank + 1 AS rank
FROM tbl_user_trip ORDER BY vDestination



这是我得到的错误。

最佳答案

尝试这样:

 $this->db->query("SET @curRank := 0");
 $this->db->query("SELECT vDestination, COUNT(*) AS count, @curRank := @curRank + 1 AS rank FROM tbl_user_trip ORDER BY vDestination");

关于php - 排名查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47959837/

10-09 21:55