我有一個從Rank function in MySQL改編的sql查詢,我想和Doctrine一起使用它。
看來,系統不喜歡我的查詢,我不知道從哪裏開始修復它。如何在MySQL中使用用戶定義的變量?
這個查詢在MySQL本身工作正常,當我用它與教條我得到一個語法錯誤。
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;
[Syntax Error] line 0, col 10: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got '@'
我使用下面的PHP代碼:
$EntityManager->createQuery(...);
是否有可能與學說2來處理呢?
它似乎有可能與主義1(MySQL User defined variable within Doctrine and Symfony)。
我和你在一起,我還沒有找到另一種可能性。 – CSchulz