Laravel 不重复计数

Posted

技术标签:

【中文标题】Laravel 不重复计数【英文标题】:Laravel Distinct Count 【发布时间】:2016-06-22 11:13:38 【问题描述】:

有什么方法可以使用 laravel 使这个查询工作? DB::raw 或 Eloquent 用法无关紧要。

SELECT count(DISTINCT name) FROM tablename;

这是我尝试过但无法获得正确输出的方法:

EloquentTableName::select(DB::raw('count(DISTINCT name) as name_count'))->get();

这会返回类似这样的内容,我想解决这个问题:

(["name_count":"15"])

我只想数 15。

【问题讨论】:

你能解释一下当前输出和预期输出之间的区别吗? @GoudaElalfy 我只需要获取 int 值。我需要 15 个。我得到的是 "name_count":"15" 如果你用->only("name_count")而不是->get()呢? 【参考方案1】:

您可以通过这种方式简单地将 get 替换为 count:

$count = DB::table('tablename')->count(DB::raw('DISTINCT name'));

也可以:

DB::table('tablename')->distinct('name')->count('name');

【讨论】:

【参考方案2】:
DB::table('tablename')->distinct()->count('name');

是正确的答案。

->distinct('name') 在 Laravel 中不起作用

【讨论】:

【参考方案3】:

您可以简单地执行以下操作:

Tablename::distinct()->count('name');

【讨论】:

【参考方案4】:

你可以像蜂蜜一样顺利地做到这一点

Modal::('yourTable')->distinct()->count('yourAttribute')

它将获取“yourAttribute”的唯一计数。

【讨论】:

以上是关于Laravel 不重复计数的主要内容,如果未能解决你的问题,请参考以下文章

Linq 不重复计数

错误列计数不计算第 1 行的计数 [重复]

获取Java中arrayList中重复值的计数而不影响arrayList的顺序[重复]

EXCEL多条件忽略重复值忽略空值计数

如何在 Laravel 中插入不重复的值

Laravel迁移不完整[重复]