有没有办法在DQL中设置全局变量?

时间:2013-01-30 09:12:21

标签: mysql symfony dql

有没有办法将全局变量设置为DQL?

我在SQL中使用这个代码(像魅力一样工作)我要翻译成DQL。它不会返回任何结果,只是执行操作并完成。

//COPIAR A RANKANTERIOR
    UPDATE SistemaPuntuacions SET rankingAnterior = rankingActual
//ACTUALITZAR SEGONS ELS PUNTS DEL USUARI
    set @rank=0;
    UPDATE SistemaPuntuacions SET rankingActual= @rank := @rank +1
    ORDER BY punts DESC;

我找不到任何与此相关的文档......

//Copy to oldRank
   UPDATE RankSystem SET oldRank = RankNow
//Update RankNow by points
   set @rank=0;
   UPDATE RankSystem SET RankNow= @rank := @rank +1
   ORDER BY points DESC;

1 个答案:

答案 0 :(得分:0)

DQL是学说查询语言 http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html

所以DQL实际上是一种查询语言,不适合处理全局变量。您可以查询数据库并对其进行操作,就是这样。

在DQL中,您可以定义要传递给查询的参数Doctrine2 using setParameters

但是你的实际DQL代码在哪里?


除了尝试将您的代码注释和关键字设置为英语,以使其对我们来说是可以理解的。


您不需要在dql中翻译它,您也可以使用本机查询。看看这里

I need to put SQL native in query Builder Doctrine2

Using native SQL query without entity class

希望有所帮助!