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

CakePHPのページネーションカウントがクエリと一致しませんか?

    group byが原因です 回避策を見つけました。リンクを入れたいのですが、紛失したので、コードを投稿します:

    public function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
        $parameters = compact('conditions', 'recursive');
        if (isset($extra['group'])) {
            $parameters['fields'] = $extra['group'];
            if (is_string($parameters['fields'])) {
                // pagination with single GROUP BY field
                if (substr($parameters['fields'], 0, 9) != 'DISTINCT ') {
                    $parameters['fields'] = 'DISTINCT ' . $parameters['fields'];
                }
                unset($extra['group']);
                $count = $this->find('count', array_merge($parameters, $extra));
            } else {
                // resort to inefficient method for multiple GROUP BY fields
                $count = $this->find('count', array_merge($parameters, $extra));
                $count = $this->getAffectedRows();
            }
        } else {
            // regular pagination
            $count = $this->find('count', array_merge($parameters, $extra));
        }
        return $count;
    }
    

    app_modelに追加しましたが、問題なく動作します:)

    これがお役に立てば幸いです

    編集済み: リンクを見つけました=)

    http://wiltonsoftware.com/posts / view / custom-group-by-pagination-and-a-calculated-field



    1. MariaDBでのSEC_TO_TIME()のしくみ

    2. PostgreSQLで文字列を連結する方法

    3. Django開発データベースをデフォルトのSQLiteからPostgreSQLに変更する

    4. OracleDatabaseのPL/SQL関数の概要