sql >> Databasteknik >  >> RDS >> Mysql

CakePHP Pagineringsantal matchar inte frågan?

Det är på grund av group by Jag hittade en lösning. Jag skulle gärna lägga länken men jag har tappat bort den, så jag lägger upp koden:

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

Jag lade till det i app_model och det fungerar bra för mig :)

Hoppas detta hjälper

Redigerad: Jag hittade länken =)

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



  1. doktrin 2:hur man konverterar en en-till-många till en många-till-många utan att förlora data

  2. Databasdesign/normaliseringsstruktur måste innehålla AND, OR, valfria element och deras relationer

  3. Hur matchar man poster som är associerade med en specifik uppsättning andra poster?

  4. Sortera strängkolumn som innehåller siffror i SQL?