magento 2: Como usar a cláusula order by e limit na consulta sql


9

Estou usando o código a seguir para filtrar o resultado e quero limitar o resultado.

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

Você tentou este $ giftColletion-> setPageSize (3)
Magento 2

Vou tentar, vai me resultar 3 registros, certo?
Nitin Pawar #

Sim, você precisa definir a contagem
Magento 2

Respostas:


8

Você pode usar setPageSize () para usar limite na coleção

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

Você pode alterar aqui 10 para o seu limite no campo setpagesize. por favor deixe-me saber se você tem qualquer problema
Rakesh Jesadiya

como posso definir a ordem de dois campos de dados, como cargo e salário.
Nitin Pawar #

Você pode usar dois tempos setOrder ()
Rakesh Jesadiya

você também pode tentar com $ giftCollection-> setOrder (matriz ('posição', 'salário'), asc) se ambos estiverem em ordem ascendente. Acima é usado para ordem de classificação diferente.
Rakesh Jesadiya

11
HIIII SEU trabalhando agora = >>> $ collection-> getSelect () -> having ('distance <'. $ Redious) -> order ('distance ASC') -> limit ($ pageSize, $ page);
Birjitsinh Zala 01/03/19

2

Usando o tamanho da página, você pode definir o limite:

$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

Normalmente, uso o seguinte, mas setPageSize()também é válido:

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

Em relação à classificação, se a direção da sua classificação for a mesma para todos os campos, você poderá definir isso em apenas uma chamada usando uma matriz:

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

1

Ordenar por :

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

1

Você pode usar o código abaixo.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.