如何解决如何在Zend DB模型中使用'distinct'
使用不同的:
public function countFollowers($user_id)
{
$select = $this->select()
->distinct()
->where('user_id = ?', $user_id);
$rowset = $this->fetchAll($select);
$rowCount = count($rowset);
return $rowCount;
}
编辑:在进行有问题的编辑后,可获得 用户 的关注者数量。您实际上需要使用NOT NOT 分组 。我已经测试了以下查询的工作原理,以获取要进行count()处理的数据,
SELECT * FROM
followers
WHERE user_id = 1 GROUP BY user_id,follower_id
我没有测试代码,但是类似的东西应该可以工作:
public function countFollowers($user_id)
{
$select = $this->select()
->where('user_id = ?', $user_id)
->group(array('user_id', 'follower_id'));
$rowset = $this->fetchAll($select);
$rowCount = count($rowset);
return $rowCount;
}
解决方法
我已经搜索了很长时间才能使该功能正常工作。
我想要知道的是如何在zend db模型中使用’distinct’,以使我对用户关注者的选择唯一。
我的数据库模型用于为用户计算关注者(在这里,我需要添加’distinct’)
public function countFollowers($user_id)
{
$rowset = $this->fetchAll("user_id = $user_id");
$rowCount = count($rowset);
if ($rowCount > 0) {
return $rowCount;
} else {
return $rowCount;
}
}
编辑:此函数是’类Application_Model_DbTable_Followers扩展Zend_Db_Table_Abstract’的一部分
我的表结构
- ID
- article_id //由“ user_id”编写的文章的ID。
- user_id //本文的所有者
- follower_id //已关注此文章的成员
- 日期//跟随日期
‘user_id’可以写成各种文章,关注者可以关注同一位作家的各种文章。我想增加一个唯一的关注者人数。例如,我想要的是,如果关注者关注一位作者的8篇文章,则必须将其与计数中的“
1”进行比较。
我希望这一点足够清楚,以了解我尝试达到的目标。
亲切的问候,
尼基
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。