我注意到两个变量存储了表中的最大id,以及来自同一个表的最小id。
使用find()和类似
的查询,可以轻松获取第一个ID $first = Model::factory('product')->sale($sale_id)->find();
但我如何检索最后一个ID? Kohana 3 ORM中有一个排序选项吗? 谢谢!
答案 0 :(得分:6)
是的,您可以使用order_by($column, $order)
对ORM中的结果行进行排序。例如,->order_by('id', 'ASC')
。
使用QBuilder获取特定值:
public function get_minmax() { return DB::select(array('MAX("id")', 'max_id'),array('MIN("id")', 'min_id')) ->from($this->_table_name) ->execute($this->_db); }
答案 1 :(得分:3)
问题实际上可能是你在find_all之后设置了order_by。你应该把它放在前面。人们倾向于把它放在最后。 这样就行了。
$smthn = ORM::factory('smthn')
->where('something', '=', something)
->order_by('id', 'desc')
->find_all();
答案 2 :(得分:2)
这样做,我想你会:
理想情况下,您应该使用MAX()
或MIN()
函数进行SQL查询 - 有点像这样:
select max(your_column) as max_value
from your_table
where ...
不确定如何使用Kohana,但this topic on its forum看起来很有趣。