sql >> データベース >  >> RDS >> Mysql

zenddbモデルで「distinct」を使用する方法

    個別の使用:

    public function countFollowers($user_id) 
    {
        $select = $this->select()
                  ->distinct()
                  ->where('user_id = ?', $user_id);
    
        $rowset = $this->fetchAll($select);
        $rowCount = count($rowset);
    
        return $rowCount;
    }
    

    編集:問題の編集後、ユーザーのフォロワー数を取得します 。実際にはグループを使用する必要があります 明確ではありません。 count()されるデータをフェッチするために、次のクエリ動作をテストしました。

    私はコードをテストしていませんが、次のようなものが機能するはずです:

    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. PHPは、MySQLクライアントよりもクエリの実行に90倍の時間がかかります

    2. SQLのみを使用してSQLServer2005の画像フィールドに画像を挿入する

    3. Postgresの間隔で可変期間を使用する

    4. 条件がない場合にクエリが何も返さないようにするにはどうすればよいですか?