sql >> Database >  >> RDS >> Mysql

Kan ik een aangepaste query pagineren zonder de standaard paginering te overschrijven?

Eigenlijk, als je het KAN doen met vinden, KAN je het doen met paginate. Je kunt hier een kijkje nemen

Maar om specifieker te zijn, kunt u de voorwaarden/limiet/velden/bevatten/volgorde enz. die u gebruikt bij zoeken toevoegen aan de paginafunctie.

Ik heb geen groep in de pagina gebruikt, maar het MOET werken :D

In jouw geval heb je zoiets als dit:

$this->paginate = array(
   'fields' => array(
        'Product.category_id',
        'COUNT(Product.hotel_id) as total'
    ),
   'group' => array(
        'Product.category_id HAVING COUNT(Product.hotel_id) > 1')
    )
);

$data = $this->paginate('Product');

Ik hoop dat het werkt, plaats een opmerking over je resultaat, als het niet werkt, moet je het negeren, omdat het de groepsvoorwaarde niet accepteert ... hoewel ik denk dat het zal werken omdat paginering uiteindelijk een vondst is.

BEWERKEN:

Je zou iets als dit kunnen proberen:

Overschrijf de paginate() en paginateCount() maar met een tweak, stiekem een ​​voorwaarde zodat je kunt zien of het een paginering is met hebben of niet. Zoiets als dit:

function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()){
   //if no having conditions set return the parent paginate 
   if (empty($conditions['having'])
       return parent::paginate($conditions, $fields, $order, $limit, $page, $recursive, $extra)
   //if having conditions set return your override

//override code here

}

Dan doe je iets soortgelijks in paginateCount(), op die manier heb je een selectieve paginate. onthoud om $condition ['have'] uit te schakelen zodra het niet nodig is of onthoud om het ergens te plaatsen dat geen invloed heeft op je vondst;)



  1. Hoe kan ik een lijst met ID's uit een SQL-tabel halen als een door komma's gescheiden waardenreeks?

  2. Hoe stel ik een MySQL-rij in op ALLEEN-LEZEN?

  3. Maak verbinding met SQL Server via PDO met behulp van SQL Server Driver

  4. PHP/ODBC-coderingsprobleem