/** * Reverse order by clause * * @return DataQuery */ public function reverseSort() { $this->query->reverseOrderBy(); return $this; }
public function testReverseOrderBy() { $query = new SQLQuery(); $query->setFrom('MyTable'); // default is ASC $query->setOrderBy("Name"); $query->reverseOrderBy(); $this->assertEquals('SELECT * FROM MyTable ORDER BY Name DESC', $query->sql()); $query->setOrderBy("Name DESC"); $query->reverseOrderBy(); $this->assertEquals('SELECT * FROM MyTable ORDER BY Name ASC', $query->sql()); $query->setOrderBy(array("Name" => "ASC")); $query->reverseOrderBy(); $this->assertEquals('SELECT * FROM MyTable ORDER BY Name DESC', $query->sql()); $query->setOrderBy(array("Name" => 'DESC', 'Color' => 'asc')); $query->reverseOrderBy(); $this->assertEquals('SELECT * FROM MyTable ORDER BY Name ASC, Color DESC', $query->sql()); $query->setOrderBy('implode("MyName","Color") DESC'); $query->reverseOrderBy(); $this->assertEquals('SELECT *, implode("MyName","Color") AS "_SortColumn0" FROM MyTable ORDER BY "_SortColumn0" ASC', $query->sql()); }