Rank function in MySQL에서 수정 한 sql 쿼리가 있으며 Doctrine과 함께 사용하고 싶습니다.
시스템에서 내 쿼리가 마음에 들지 않아 어디에서 수정해야할지 모르겠다.MySQL에서 사용자 정의 변수를 사용하는 방법은 무엇입니까?
이 쿼리는 MySQL 자체에서 잘 작동합니다. Doctrine과 함께 사용할 때 구문 오류가 발생합니다.
$EntityManager->createQuery(...);
이 교리 2이 문제를 해결할 수 있는가 :
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 코드를 사용하고?
Doctrine 1 (MySQL User defined variable within Doctrine and Symfony)에서 가능할 것으로 보입니다.
나는 당신과 함께 있지만 아직 다른 가능성을 발견하지 못했습니다. – CSchulz