magento 2 : SQL 쿼리에서 order by 및 limit 절을 사용하는 방법


9

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

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

이 $ giftColletion-> setPageSize (3) 시도해 봤어
젠토 2

시도해 볼까요? 3 개의 레코드가 나옵니다.
Nitin Pawar

네, 카운트를 설정해야합니다
Magento 2

답변:


8

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

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

여기서 setpagesize 필드에서 10을 한계로 변경할 수 있습니다. 문제가 있으면 알려주세요
Rakesh Jesadiya

위치 및 급여와 같은 두 데이터 필드의 순서를 어떻게 설정할 수 있습니까?
Nitin Pawar 5

당신은 두 번 사용할 수 setOrder ()
Rakesh Jesadiya

둘 다 오름차순이면 $ giftCollection-> setOrder (array ( 'position', 'salary'), asc)로 시도해 볼 수도 있습니다. 위는 다른 정렬 순서로 사용됩니다.
Rakesh Jesadiya

1
HIIII ITS working now = >>> $ collection-> getSelect ()-> having ( 'distance <'. $ redious)-> order ( 'distance ASC')-> limit ($ pageSize, $ page);
Birjitsinh Zala

2

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

$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

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

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

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

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

1

주문 :

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

1

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

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.