2016-06-01 9 views
0

私はZF2で次のクエリを作成したい:エイリアスを選択 - 計算フィールドで

SELECT (a + b) AS c FROM ta WHERE c > 1; 

テーブルtaで2つの整数フィールドabが含まれています。

私はこのコードで、これまでそれを試してみました:

$columns = array('c'=>'(a + b)'); 
$where = 'c > 1'; 
$tableGateway = $this->getTableGateway('ta'); 
$sql = $tableGateway->getSql(); 
$select = $sql->select()->columns($columns); 
$select->where($where);  
$itemData = $tableGateway->selectWith($select); 

を不幸に戻って与えられたクエリは次のとおりです。

SELECT `ta`.`a + b` AS `c` FROM `ta` WHERE c > 1; 

それを達成するためにどのように任意のアイデア?私も括弧なしで試しました:$columns = array('c'=>'a + b');どちらも動作しません。

私は$this->getAdapter()->query($sqlQuery, Adapter::QUERY_MODE_EXECUTE);でこれまでに試してみましたが、->closeCursor()で解決できないバッファリングされていないクエリの問題が発生しました。

答えて

1

使用Zend\Db\Sql\Predicate\Expression:魅惑のように動作します

$columns = array('c'=> new Expression('(ta.a + ta.b)')); 
+0

おかげで、! – Andreas

関連する問題