magento 2 : SQL 쿼리에서 order by 및 limit 절을 사용하는 방법 위해 다음 코드를 사용하고 결과를

결과를 필터링하기 위해 다음 코드를 사용하고 결과를 제한하고 싶습니다.

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


답변

setPageSize ()를 사용하여 콜렉션에서 제한을 사용할 수 있습니다.

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

답변

페이지 크기를 사용하여 제한을 설정할 수 있습니다.

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

답변

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

답변

나는 일반적으로 다음을 사용하지만 setPageSize()유효합니다.

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

정렬과 관련하여 정렬 방향이 모든 필드에서 동일하면 배열을 사용하여 한 번의 호출로 정렬 방향을 설정할 수 있습니다.

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

답변

주문 :

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

답변

아래 코드를 사용할 수 있습니다.

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