我已经看过各种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/