【发布时间】:2014-11-21 11:52:47
【问题描述】:
我想根据条件将变量设置为DQL查询
两个变量值都匹配设置变量等级的情况。
dql查询
$q=$this->em->createQuery("select distinct u.id,u.city,u.country,u.designation FROM Entities\User u JOIN Entities\EventVisitor evt_vstr WITH evt_vstr.user = u.id WHERE (
CASE
WHEN $a =u.designation THEN SET @rank=1
WHEN $b =u.country THEN SET @rank=2
WHEN $c =u.city THEN SET @rank=3
WHEN $d =u.company THEN @rank=4
END) order by @rank")
->setFirstResult($i)
->setMaxResults($max_result);
$results = $q->getResult();
这里排名是我要设置的变量
我面临的问题
- 我无法在 dql 中设置变量。
错误日志
PHP Fatal error: Uncaught exception 'Doctrine\\ORM\\Query\\QueryException' with message 'select distinct u.id, u.city,u.country,u.designation FROM Entities\\User u JOIN Entities\\EventVisitor evt_vstr WITH evt_vstr.user = u.id \n\t \t\t\t\t\tWHERE (\n\t\t\t\t\t\t\t\t\tCASE\n\t\t\t\t\t\t\t\t\t\t\t\tWHEN Co-founder =u.designation THEN SET @rank=1\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tEND ) ' in /home/india/public_html/serve-trade-com/application/libraries/Doctrine/ORM/Query/QueryException.php:39\nStack
但它不起作用。
我该怎么做?
或者有没有办法做到这一点
请帮忙
【问题讨论】:
标签: php mysql doctrine-orm dql