Reputation: 5193
How would you write the following query in Zend framework?
SELECT * FROM table_name ORDER BY FIELD(field_name, 'Small','Medium','Large');
I just need the "Order by" part :)
Thanks!
Upvotes: 16
Views: 11610
Reputation: 76880
I think you should do:
$db = Zend_Db::factory( ...options... );
$select = $db->select()
->from(table_name)
->order(new Zend_Db_Expr("FIELD(field_name, 'Small','Medium','Large')")));
Upvotes: 2
Reputation: 238219
What about this:
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select();
$select->from('table_name')
->order(new Zend_Db_Expr("FIELD(field_name, 'Small','Medium','Large')"));
var_dump($select->assemble());
Results in:
string 'SELECT `table_name`.* FROM `table_name` ORDER BY FIELD(field_name, 'Small','Medium','Large')' (length=92)
Upvotes: 28
Reputation: 21957
$select->order(new Zend_Db_Expr('FIELD(field_name, 'Small','Medium','Large')'));
Upvotes: 3