Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar 'distinto' no modelo zend db


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

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

    return $rowCount;
}

EDIT:Após editar em questão para obter a contagem de seguidores de um usuário . Você realmente precisa usar grupo NÃO distinto. Eu testei a seguinte consulta funciona para buscar os dados a serem count()ed,

Eu não testei o código, mas algo assim deve funcionar:
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;
}