我在使用ZF2中paginator DbSelect適配器中的DISTINCT查詢時遇到了一些問題。我的步驟是。ZF2中的Zend Paginator Adapter DbSelect DISTINCT問題
首先我創建了Select對象。
$select = new Select();
$select->columns(
array(
'personId' => new Expression("DISTINCT $this->table.person_id"),
'first_name', 'middle_name', 'last_name'));
$select->from($this->table);
然後我通過這個對象的Zend \分頁程序\適配器\ DbSelect
$result = new DbSelect($select, $this->adapter, $this->resultSetPrototype);
現在的問題是,如果我通過 echo str_replace('"', '', $select->getSqlString());
打印SQL查詢,並在MySQL運行此查詢它顯示12個結果。
但$result->count();
顯示55結果。
我試圖找出問題,發現也許Zend \ Paginator \ Adapter \ DbSelect count()
功能是越野車。
當我在Zend \ Paginator \ Adapter \ DbSelect count()
函數中打印sql查詢時,它從查詢中刪除了DISTINCT子句並添加了它自己的計數列c。
SELECT COUNT(1) AS c FROM myTable;
請建議我應該怎麼辦?
請參閱:http://stackoverflow.com/questions/6733117/how-to-use-distinct-in-zend-db-model – Arvind 2013-03-25 08:54:42