2014-12-30 3 views
0

zf2에서 SQL_CALC_FOUND_ROWS를 사용하는 간단한 select 문을 사용하고 있습니다. 코드는 다음과 같을 것이고 한정 기호를 사용합니다.SQL_CALC_FOUND_ROWS + zf2

$select = $this->getSlaveSql()->select('posts'); 
$select->quantifier(new Expression('SQL_CALC_FOUND_ROWS')); 
$select->columns([ 
     'total'=>new Expression("FOUND_ROWS()"), 
     '*' 
]); 

그리고 생성 된 SQL은 다음과 같다

SELECT SQL_CALC_FOUND_ROWS FOUND_ROWS() AS `total`, `posts`.* FROM `posts` 

스크린 샷 : enter image description here

그러나 어떤 이유로, FOUND_ROWS는 항상 0으로 반환되고, 나는 두 번째 쿼리를 추가하지 않으 페이지 매김을 위해. 도와주세요.

답변

3

FOUND_ROWS()은 일반적으로 후속 쿼리에서 사용됩니다. 데이터를 선택하는 동일한 예제에서 실행할 수 있을지는 의심 스럽습니다. 문서의 예제를 참조하십시오.

또한 제한없이 쿼리에서 의미가 없습니다.

+0

한계에도 동일한 문제가 있습니다. FROM'posts' LIMIT '10'은 아무 효과가 없습니다 :( – Laxman

+0

글쎄, 말했듯이,'FOUND_ROWS()'콜은 별도로 존재해야합니다. 쿼리 게시물 데이터를 선택한 후 –

+0

감사합니다. 문제는 found_rows()에 대한 다른 선택 쿼리를 사용하여 해결됩니다. – Laxman