2013-06-11 2 views
1

e : SQL Server라는 사실과 관련이 있다는 것을 깨달았습니다. 누구든지 SQL Server의 LIMIT에 해당하는 ZF2를 알고 있습니까?SQL Server에서 ZF2의 Select에 limit() 사용

안녕 모두,

언제나처럼 ZF2 함께 붙어.

특정 테이블에서 행을 선택하는 클래스에 fetchAll() 메소드가 있습니다. 자,이 방법은 효과가 있지만 나는 그것에 한계를 두는 것처럼 보이지 않습니다. 작동하지 않는 (

public function fetchAll() 
{ 
    $resultSet = $this->tableGateway->select(function(Select $select){ 
     $select->order('messageId ASC'); 
    }); 
    return $resultSet; 
} 

을하지만 난 그것을 이해하는 방법에서, 한계는 매우 쉽게 (유사한)해야한다, 그래서 이런 짓을 :

이 작동 (적절한 순서로 행을 반환)) :

public function fetchAll() 
{ 
    $resultSet = $this->tableGateway->select(function(Select $select){ 
     $select->limit(30); 
    }); 
    return $resultSet; 
} 

현재 아무 것도 반환하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

4

이것은 작동하는 것 같았습니다! 다음 쿼리 것

public function fetchAll() 
{ 
    $resultSet = $this->tableGateway->select(function(Select $select){ 
     $select->quantifier('TOP 15 ') 
      ->order('id ASC'); 
    }); 
    return $resultSet; 
} 

:

SELECT TOP 15 * FROM tablename ORDER BY id ASC 
+2

젠드의 SQL 서버 추상화 끔찍한 짧은 아무것도 오프셋 사용. 레코드 제한과 같은 간단한 작업을 수행하기 위해 크로스 플랫폼이 아닌 SQL을 작성해야 할 때 추상화 계층을 사용하는 것이 중요합니다. – ForrestLyman

5

은()

public function fetchAll() 
{ 
    $resultSet = $this->tableGateway->select(function(Select $select){ 
     $select 
      ->limit(30) 
      ->offset(10); 
    }); 
    return $resultSet; 
}