加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MySQL在Doctrine和Symfony中定义的变量

发布时间:2020-12-13 22:31:06 所属栏目:PHP教程 来源:网络整理
导读:我有以下Doctrine声明,它工作正常. $query = $this-createQuery('r') -select('u.id,CONCAT(u.first_name," ",LEFT(u.last_name,1)) as full_name,u.first_name,u.last_name,u.gender,r.run_time') -innerJoin('r.ChallengeUser u') -orderBy('run_time') -e
我有以下Doctrine声明,它工作正常.

$query = $this->createQuery('r')
            ->select('u.id,CONCAT(u.first_name," ",LEFT(u.last_name,1)) as full_name,u.first_name,u.last_name,u.gender,r.run_time')
            ->innerJoin('r.ChallengeUser u')
            ->orderBy('run_time')
            ->execute(array(),Doctrine::HYDRATE_ARRAY_SHALLOW);

我需要在此添加行计数.现在我知道使用原始SQL你可以做到这一点;

SET @rank=0;
SELECT @rank:=@rank+1 as rank,u.id,u.first_name ....etc

所以我的问题是,如何让它与Symfony 1.4和Doctrine一起运行?
我在这个项目中使用MySQL.

编辑…
我想到了..

Doctrine_Manager::getInstance()->getCurrentConnection()->standaloneQuery('SET @rank=0;')->execute();

$query = $this->createQuery('r')
            ->select('r.run_time,@rank:=@rank+1 rank,r.user_id,u.gender')
            ->leftJoin('r.ChallengeUser u')
            ->orderBy('run_time')
            ->execute(array(),Doctrine::HYDRATE_ARRAY_SHALLOW);

添加独立查询以设置变量,并将内部联接交换为左联接.

解决方法

如果您正在使用MySQL,并且没有预见到其他DBMS的切换,也许您可??以尝试

$query = $this->createQuery('r')
            ->select('COUNT(u.id) as rank,Doctrine::HYDRATE_ARRAY);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读