Mysql
 sql >> Database >  >> RDS >> Mysql

Come usare 'distinct' nel modello 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:dopo la modifica in questione per ottenere il conteggio dei follower di un utente . In realtà devi usare gruppo NON distinto. Ho testato la seguente query funziona per recuperare i dati da contare(),

Non ho testato il codice, ma qualcosa del genere dovrebbe funzionare:

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