duanqianpu6499 2014-02-06 21:12
浏览 90

如何在MySQL中使用用户定义的变量?

I have a sql query adapted from Rank function in MySQL and I want to use it with Doctrine.
It seems that the system doesn't like my query and I don't know where to start to fix it.

This query works fine in MySQL itself, when I am using it with Doctrine I get a syntax error.

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 '@'

I am using following PHP code:

$EntityManager->createQuery(...);

Is it possible to handle this with Doctrine 2?
It seems to be possible with Doctrine 1 (MySQL User defined variable within Doctrine and Symfony).

  • 写回答

1条回答 默认 最新

  • dru5089 2014-02-07 16:27
    关注

    EntityManager::createQuery is for DQL queries, I think Native SQL is what you need (allow you to execute an arbitrary query and map result to doctrine entities).

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么