magento 2: Jak używać klauzuli order by i limit w zapytaniu sql


9

Używam następującego kodu do filtrowania wyników i chcę ograniczyć wynik.

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

Czy próbowałeś tego $ giftColletion-> setPageSize (3)
Magento 2

Spróbuję, To przyniesie mi 3 rekordy, prawda?
Nitin Pawar,

Tak, musisz ustawić liczbę
Magento 2

Odpowiedzi:


8

Możesz użyć setPageSize (), aby użyć limitu w kolekcji

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

Możesz zmienić tutaj 10 na swój limit w polu setpagesize. daj mi znać, jeśli masz jakiś problem
Rakesh Jesadiya

jak mogę ustawić kolejność dwóch pól danych, takich jak pozycja i wynagrodzenie.
Nitin Pawar,

możesz użyć dwa razy setOrder ()
Rakesh Jesadiya

możesz także spróbować z $ giftCollection-> setOrder (tablica („pozycja”, „wynagrodzenie”), asc), jeśli oba są w porządku rosnącym. Powyższe służy do innej kolejności sortowania.
Rakesh Jesadiya

1
HIIII ITS już działa = >>> $ collection-> getSelect () -> mając ('odległość <'. $ Redious) -> zamówienie ('odległość ASC') -> limit ($ pageSize, $ page);
Birjitsinh Zala

2

Za pomocą rozmiaru strony możesz ustawić limit:

$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

Zwykle używam następujących, ale setPageSize()jest również ważny:

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

Jeśli chodzi o sortowanie, jeśli kierunek sortowania jest taki sam dla wszystkich pól, możesz ustawić to w jednym wywołaniu za pomocą tablicy:

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

1

Zamów przez :

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

1

Możesz użyć poniższego kodu.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.