How would you write the following query in Zend framewor开发者_运维知识库k?
SELECT * FROM table_name ORDER BY FIELD(field_name, 'Small','Medium','Large');
I just need the "Order by" part :)
Thanks!
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)
$select->order(new Zend_Db_Expr('FIELD(field_name, 'Small','Medium','Large')'));
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')")));
精彩评论