【问题标题】:order by and group by in ORM (fuelphp)ORM 中的 order by 和 group by (fuelphp)
【发布时间】:2017-03-26 05:28:25
【问题描述】:

我正在尝试按标签排序和分组

$结果 = Model_Tag::query()->select(\Fuel\Core\Db::expr('count(*)'),'count')->select('tag')->group_by('tag')-> order_by('count','desc')->get();

$结果 = Model_Tag::query()->select(\Fuel\Core\Db::expr('count(*)','count'))->select('tag')->group_by('tag')-> order_by('count','desc')->get();

但是,无论我做什么,我都会收到错误,即未定义计数,因为 ORM 坚持对字段名称进行别名:

选择计数(*) AS t0_c0, t0.tag AS t0_c1, t0.id AS t0_c2 FROM tag AS t0 GROUP BY t0.tag ORDER BY t0.count DESC"

导致未找到列错误

或者:

$query = Model_Tag::query()->select(\Fuel\Core\Db::expr('count(*) as count'))->select('tag')->group_by('tag')->order_by('count','desc')->get();

查询

SELECT count(*) as count AS t0_c0, t0.tag AS t0_c1, t0.id AS t0_c2 FROM tag AS t0 GROUP BY t0.tag ORDER BY t0.countDESC

给出语法错误

【问题讨论】:

    标签: fuelphp fuelphp-orm


    【解决方案1】:

    在 FuelPHP 1.8 版中,访问您的控制器并查询设置此示例:

    $result = Model_Tag::query()->group_by('tag')->order_by('count','desc')->get();
    

    如果你得到计数

    $count = count($result);
    

    警告!不要打电话给你的select('tag'),因为你已经在使用Model_Tag

    参考:https://fuelphp.com/docs/classes/database/usage.html

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2011-06-28
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多