magento 2: Verwendung der Klausel order by and limit in der SQL-Abfrage


9

Ich verwende folgenden Code, um das Ergebnis zu filtern, und ich möchte das Ergebnis begrenzen.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');

Haben Sie diese $ giftColletion-> setPageSize (3)
Magento 2

Werde es versuchen, es wird mir 3 Rekorde bringen, oder?
Nitin Pawar

Ja, Sie müssen die Anzahl einstellen
Magento 2

Antworten:


8

Sie können setPageSize () verwenden, um limit in collection zu verwenden

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('salary','ASC');
$giftColletion->setPageSize(10);

Sie können hier 10 bis zu Ihrem Limit im Feld setpagesize ändern. Bitte lassen Sie mich wissen, wenn Sie ein Problem haben
Rakesh Jesadiya

Wie kann ich die Reihenfolge für zwei Datenfelder wie Position und Gehalt festlegen?
Nitin Pawar

Sie können zweimal setOrder ()
Rakesh Jesadiya

Sie können es auch mit $ giftCollection-> setOrder (Array ('Position', 'Gehalt'), Asc) versuchen, wenn beide in aufsteigender Reihenfolge sind. Oben wird für verschiedene Sortierreihenfolgen verwendet.
Rakesh Jesadiya

1
HIIII ITS funktioniert jetzt = >>> $ collection-> getSelect () -> mit ('distance <'. $ Redious) -> order ('distance ASC') -> limit ($ pageSize, $ page);
Birjitsinh Zala

2

Mit der Seitengröße können Sie ein Limit festlegen:

$giftColletion = $this->_giftFactory->getCollection();
    $giftColletion->addFieldToFilter('store_id', 1);
    $giftColletion->setOrder('position','ASC');
    $giftColletion->setPageSize($pageSize);
    $giftColletion->setCurPage($page);

2
$giftColletion = $this->_giftFactory->getCollection()->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position', 'ASC');
$giftColletion->setOrder('attribute_code', 'ASC'); 
$giftColletion->setPageSize($limitNo);

2

Normalerweise verwende ich Folgendes, setPageSize()ist aber auch gültig:

$collection->getSelect()->limit($limit);

Wenn beim Sortieren die Sortierrichtung für alle Felder gleich ist, können Sie dies in nur einem Aufruf mithilfe eines Arrays festlegen:

$collection->setOrder([$field1, $field2, ...], $dir);

1

Sortieren nach :

$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('store_id','ASC');

1

Sie können den folgenden Code verwenden.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.