1

e:刚刚意识到这可能与它是 SQL Server 的事实有关。任何人都知道 ZF2 相当于 SQL Server 的 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

2 回答 2

6

使用偏移量()

public function fetchAll()
{
    $resultSet = $this->tableGateway->select(function(Select $select){
        $select
            ->limit(30)
            ->offset(10);
    });
    return $resultSet;
}
于 2013-10-23T07:42:37.087 回答
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
于 2013-06-11T15:40:45.777 回答