【问题标题】:Laravel: Get number of occurrences in tableLaravel:获取表中出现的次数
【发布时间】:2013-04-20 11:09:15
【问题描述】:

我在Laravel有这个查询:

Models::select('*')->group_by('user_name')->order_by(DB::raw('count(user_name)'), 'desc')->take(3)->get();

它返回前 3 名用户,按他们出现在表格中的数量。
问:我怎样才能得到count参数(它们出现了多少次?)

目前的回应:

array(
    "Tim","John","Luke"
);

我需要这样的东西:

array(
    array(
        "user" => "Tim",
        "count" => 3
    ),
    array(
        "user" => "John",
        "count" => 2
    ),
    array(
        "user" => "Luke",
        "count" => 1
    )
);

谢谢!

【问题讨论】:

    标签: php mysql laravel eloquent


    【解决方案1】:

    您应该在查询的选择部分执行COUNT 并为其设置别名,然后在排序中使用该别名。

    也许是这样的。

    Models::select('*', DB::raw('count(user_name) AS user_count'))->group_by('user_name')->order_by(DB::raw('user_count'), 'desc')->take(3)->get();
    

    【讨论】:

    • 这看起来是个好主意,但我收到一个错误:(一般错误:1 没有这样的列:count
    • 啊这可能是因为它是 MySQL 中的保留字。我会更新我的答案,但请尝试改用user_count。不过,您可以将其更改为您想要的。
    猜你喜欢
    • 2016-06-09
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多