Bonjour,
J'essaie de convertir une requête SQL dans Symfony pour calculer une position de classement en fonction des points d'un utilisateur.
La requête c'est celle-ci, elle fonctionne dans phpMyAdmin :
SELECT 1 + COUNT(*) AS rank FROM fc_user WHERE points > (SELECT points FROM fc_user WHERE user_id=2)
J'ai essayé ça :
$subquery = $this->createQueryBuilder('f')
->select('f.points')
->andWhere('f.user > :user')
->setParameter('user', $user)
->getQuery()
->getResult()
;
return $this->createQueryBuilder('f')
->select('1 + count(*) AS rank')
->andWhere('f.points > :subquery')
->setParameter('subquery', $subquery)
->getQuery()
->getOneOrNullResult()
;
Mais je me hurte à une erreur Expected Literal, got '*', je ne pense pas que ce soit la bonne méthode.
Auriez-vous une idée de comment l'écrire en Query Builder ?
Merci !