我有一个查询:通过调用 - >选择两次来更改选择参数?
$query =
Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
->select('*')
->from('products p')
->limit(5);
然后我得到的结果:
$result = $query->queryAll();
如何使用现有的查询对象,而无需重写它的“选择”,重新实例化值和“限制”。我想将选择更改为“计数(p.productid)”并取消设置限制。我尝试了以下但它不起作用:
$query =
Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
->select('*')
->from('products p')
->limit(5);
$result = $query->queryAll();
$query =
$query
->select('count(p.productid)')
->limit(-1);
$result2 = $query->queryRow();
这仍然返回第一个选择的结果?
编辑
基本上,我想重置选择。它看起来像它建立在选择。所以,我认为你可以这样做:
$query =
$query->select('something')
->select('somethingElse')
->select('somethingMoreStuff');
我的问题是,我想“重置”选择。所以这些选择基本上是UNDO。这可能吗?
您可以简单地使用count函数类名::模型 - >计数(); – 2013-03-14 08:34:00
在我正在做的上下文中不起作用。请详细解释一下? – coderama 2013-03-14 08:45:22
@NanheKumar除了'ClassName :: model-> count()'用于Active Record请求。所以第一个问题是你是否绝对需要使用DAO和查询构建器,或者你可以使用Active Record抽象? – darkheir 2013-03-14 08:50:03