![]() |
|
Snippets |
|
Hello everyone,
i accidently found a neat feature of MYSQL on the web, which isn't even documented in the official MySQL 5.x manual (original blog entry to be found at http://www.cfdan.com/posts/Handy_MySQL_-_ORDER_BY_FIELD.cfm">original Blog Posting)
Basicly i needed a way to create some custom order for my records, so i started to build a raw SQL query. Then i ran into troubles when i tried to get this working with a pager.. all in all, i tried it to solve it with Criteria.
I created a new class, myCriteria which inherits from the original Criteria class.
/** * Add order by column name with a custom Order for a given Field * * @param unknown_type $propertyBracket * @return unknown */ public function addCustomOrderByColum($propertyField, $propertyList) { $this->orderByColumns[] = 'FIELD('.$propertyField.', ' . $propertyList .' )'; return $this; }
An example could look like:
$c->addCustomOrderByColum(CustomPeer::TYPE, " 'Sold', 'Pending', 'Announced' ");
This way you can create ORDER BY Statements which are not bound to common ASC/DESC rules.