Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser 'distinct' dans le modèle zend db

En utilisant distinct :

public function countFollowers($user_id) 
{
    $select = $this->select()
              ->distinct()
              ->where('user_id = ?', $user_id);

    $rowset = $this->fetchAll($select);
    $rowCount = count($rowset);

    return $rowCount;
}

EDIT :Après l'édition en question pour obtenir le nombre d'abonnés d'un utilisateur . Vous devez en fait utiliser group NON distinct. J'ai testé la requête suivante pour récupérer les données à compter(),

Je n'ai pas testé le code, mais quelque chose comme ça devrait fonctionner :

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;
}