Kohana orm命令asc / desc?

时间:2011-02-26 09:37:45

标签: php sorting orm kohana

我注意到两个变量存储了表中的最大id,以及来自同一个表的最小id。

使用find()和类似

的查询,可以轻松获取第一个ID
        $first = Model::factory('product')->sale($sale_id)->find();

但我如何检索最后一个ID? Kohana 3 ORM中有一个排序选项吗? 谢谢!

3 个答案:

答案 0 :(得分:6)

  1. 是的,您可以使用order_by($column, $order)对ORM中的结果行进行排序。例如,->order_by('id', 'ASC')

  2. 使用QBuilder获取特定值:

  3.   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)

这样做,我想你会:

  • 选择与您的条件相对应的表格的所有行
  • 从MySQL获取所有这些行到PHP
  • 最后,
  • 只能使用其中一行


理想情况下,您应该使用MAX()MIN()函数进行SQL查询 - 有点像这样:

select max(your_column) as max_value
from your_table
where ...


不确定如何使用Kohana,但this topic on its forum看起来很有趣。