我有一个改编自Rank function in MySQL的SQL查询,我想将它与Doctrine一起使用 似乎系统不喜欢我的查询,我不知道从哪里开始修复它。
这个查询在MySQL本身运行正常,当我在Doctrine中使用它时出现语法错误。
SELECT l.*,
@points:=l.playerPoints + l.organisationPoints,
@curRank := if(@points <> @lastPoints, @curRank + 1, @curRank) AS rank,
@lastPoints:= @points as points
FROM leaderboard l, (SELECT @curRank := 0) r, (SELECT @lastPoints := 0) lp, (SELECT @points := 0) p
ORDER BY l.playerPoints + l.organisationPoints DESC;
[语法错误]第0行,第10列:错误:预期的IdentificationVariable | ScalarExpression | AggregateExpression |功能声明| PartialObjectExpression | “(”Subselect“)”| CaseExpression,得到'@'
我正在使用以下PHP代码:
$EntityManager->createQuery(...);
是否可以使用Doctrine 2来处理这个问题? 似乎可以使用Doctrine 1(MySQL User defined variable within Doctrine and Symfony)。