Kohana orm 命令升序/降序?

发布于 2024-10-19 02:51:52 字数 228 浏览 2 评论 0原文

我注意到两个变量存储表中的最大 id 和同一个表中的最小 id。

第一个 id 很容易被获取,使用 find() 和类似的查询,

        $first = Model::factory('product')->sale($sale_id)->find();

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

I heed two variables storing the maximum id from a table, and the minimum id from the same table.

the first id is easy to be taken ,using find() and a query like

        $first = Model::factory('product')->sale($sale_id)->find();

but how can i retrieve the last id? is there a sorting option in the Kohana 3 ORM?
thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一江春梦 2024-10-26 02:51:52
  1. 是的,您可以使用 order_by($column, $order) 对 ORM 中的结果行进行排序。例如,->order_by('id', 'ASC')

  2. 使用QBuilder获取特定值:

 公共函数 get_minmax() 
  {
      返回 DB::select(array('MAX("id")', 'max_id'),array('MIN("id")', 'min_id'))
                 ->from($this->_table_name)
                 ->执行($this->_db); 
  }
  1. Yes, you can sort resulting rows in ORM with order_by($column, $order). For example, ->order_by('id', 'ASC').

  2. Use QBuilder to get a specific values:

  public function get_minmax() 
  {
      return DB::select(array('MAX("id")', 'max_id'),array('MIN("id")', 'min_id'))
                 ->from($this->_table_name)
                 ->execute($this->_db); 
  }
盗梦空间 2024-10-26 02:51:52

问题实际上可能是您在 find_all 之后设置 order_by 。你应该把它放在前面。人们确实倾向于把它放在最后。
这样就可以了。

     $smthn = ORM::factory('smthn')
        ->where('something', '=', something)
        ->order_by('id', 'desc')
        ->find_all();

The problem could actually be that you are setting order_by after find_all. You should put it before. People do tend to put it last.
This way it works.

     $smthn = ORM::factory('smthn')
        ->where('something', '=', something)
        ->order_by('id', 'desc')
        ->find_all();
我也只是我 2024-10-26 02:51:52

这样做,我想您将:

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

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

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

不知道如何使用 Kohana 做到这一点,但是论坛上有这个主题看起来很有趣。

Doing like this, I suppose you'll be :

  • selecting all lines of your table that correspond to your condition
  • fetching all those lines from MySQL to PHP
  • to, finally, only work with one of those lines

Ideally, you should be doing an SQL query that uses the MAX() or the MIN() function -- a bit like this :

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

Not sure how to do that with Kohana, but this topic on its forum looks interesting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文