Symfony排名mysql数据库

时间:2015-03-13 15:38:30

标签: php mysql sql-server symfony symfony-2.3

我实际上在尝试获取Symfony上特定行的等级或位置时遇到了很多麻烦。

示例:播放器表

id - name - 总
1 xxxx 100
2 yyyy 200
3 www 500

当我在终端上执行以下操作时,它可以正常工作:

SELECT id, total, name, @curRank := @curRank + 1 AS rank FROM player p, (SELECT @curRank := 0) q ORDER BY total DESC

+ ---- + ------- + ---------------- + ------ +
| id |总计|名字|排名|
+ ---- + ------- + ---------------- + ------ +
| 19 | 1931年|吉图曼| 1 |
| 2 | 1765 | lu | 2 |
| 1 | 1583 | Seyaa | 3 |
| 17 | 1532 | coucou lapinou | 4 |
| 11 | 1494 | moine eau | 5 |
| 7 | 1446 |外星人| 6 |
| 3 | 1415 | Saiyya | 7 |
| 50 | 1231 | dfdf | 8 |
| 20 | 1230 | Jrm | 9 |
| 16 | 1221 |拉格纳| 10 |
| 6 | 1182 | arachati | 11 |
| 8 | 1025 | momo | 12 |
| 10 | 789 | kingrom | 13 |
| 13 | 777 | le seur | 14 |
| 53 | 743 | aaa | 15 |
| 14 | 568 | Rakhamo | 16 |
| 9 | 466 | sapeur coco | 17 |
| 12 | 446 | chamboul | 18 |
| 51 | 321 | sdfdsf | 19 |
| 54 | 132 | | 20 |
| 52 | 46 | sdfsdf | 21 |
| 48 | 0 | dragma | 22 |
+ ---- + ------- + ---------------- + ------ +

问题是让它在Symfony2中工作,其中" @"或"设置"关键字无法识别。我试过这个:

$query -> $this->_em->createQuery('SET @rownum := 0;SELECT id, total, rank FROM SELECT @rownum := @rownum + 1 AS rank, id, totalTroopRecieved FROM clan ORDER BY total;')->setParameter('id', $this->getId());

返回$ query-> getResult();

出现此错误:

[Syntax Error] line 0, col 24: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got '@'

我感到绝望..当我知道它通过sql查询而不是symfony工作时花了2天时间让我疯了。

我尝试了NUMBER_ROW()或RANK()函数,但它似乎不适用于Mysql。

感谢您的宝贵帮助。

0 个答案:

没有答案