0
내가 이렇게 내 DB에 쿼리를 생성하는 기능이 있습니다Symfony2 + 교리의 쿼리 빌더 - 어디 = 1
public function getList($u, $t, $ls, $lf) {
return $this->getEntityManager()
->createQuery('
SELECT
o,
u,
g,
r,
t,
p
FROM GameShelfUsersBundle:Own o
LEFT JOIN o.user u
LEFT JOIN o.game g
LEFT JOIN o.rate r
LEFT JOIN o.typo t
LEFT JOIN o.platforms p
WHERE u.id = :user
AND o.typo = :type
ORDER BY o.updated DESC
')
->setParameters(array(
'user' => $u,
'type' => $t
))
->setMaxResults($lf)
->setFirstResult($ls)
->getResult();
}
내 문제는 어떻게 not in
을 할 :type
을 설정하는 것입니다!? 내 말은, 나는 이것을 다음과 같이 사용하고 싶었다.
$type = '!= 1'
...
AND o.typo :type
...
'type' => $type
그러나 전혀 작동하지 않았다. $type = -1
을 사용하면 도움이되지 않습니다. if/else 문 작성 및 쿼리 복제 이외의 다른 방법이 있습니까?
에서
return $q->getResult();
전화를 기억이
은 예입니다. 쿼리 작성기로 빌드 된 동일한 쿼리를 사용하는 동안 '쿼리 시간'은 9 밀리 초를 넘습니다. 그리고 그것은 더미 데이터에만 있습니다. –@TomekBuszewski : if ... then ... else 문 ("코드"의 중복 부분없이)을 기반으로하는 동적 방식으로 쿼리를 작성하려는 경우 이것이 유일한 방법입니다 – DonCallisto
추신 : You don "가장 빠른"방법을 요구하지 마라. – DonCallisto