/** * Render sql select orders * * @return $this */ protected function _renderOrders() { if (!$this->_isOrdersRendered) { foreach ($this->_orders as $field => $direction) { $this->_select->order(new \Zend_Db_Expr($field . ' ' . $direction)); } $this->_isOrdersRendered = true; } return $this; }
/** * Order by qty * * @param \Magento\Framework\DB\Select $select * @return \Magento\Framework\DB\Select */ protected function _loadPriceDataSelect($select) { $select->order('qty'); return $select; }
/** * Adds order by random to select object * Possible using integer field for optimization * * @param Select $select * @param string $field * @return $this */ public function orderRand(Select $select, $field = null) { if ($field !== null) { $expression = new \Zend_Db_Expr(sprintf('RAND() * %s', $this->quoteIdentifier($field))); $select->columns(array('mage_rand' => $expression)); $spec = new \Zend_Db_Expr('mage_rand'); } else { $spec = new \Zend_Db_Expr('RAND()'); } $select->order($spec); return $this; }
/** * Process ORDER BY clause * * @param Select $select * @return void */ protected function processSortOrder(Select $select) { foreach ($this->sortOrder as $direction => $column) { if (!in_array($direction, [Select::SQL_ASC, Select::SQL_DESC])) { $direction = ''; } $expr = new \Zend_Db_Expr(sprintf('%s %s', $this->adapter->quoteIdentifier('lookup.' . $column), $direction)); $select->order($expr); } }