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

Sådan bruges 'distinct' i zend db-modellen

Bruger distinkt:

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

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

    return $rowCount;
}

EDIT:Efter den pågældende redigering for at få antallet af følgere af en bruger . Du skal faktisk bruge gruppe IKKE adskilt. Jeg har testet følgende forespørgsel for at hente de data, der skal tælles()ed,

Jeg har ikke testet koden, men sådan noget burde virke:

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


  1. SQL:Hvordan kan jeg kun opdatere en værdi på en kolonne, hvis denne værdi er null?

  2. Hvordan HOUR() virker i MariaDB

  3. Kommaseparerede værdier med SQL Query

  4. Hvad er PDO, hvordan er det relateret til SQL-injektion, og hvorfor skal jeg bruge dette?