【问题标题】:Count occurence of id from mysql select and combine duplicate with php (not in mysql query, distinct, grouby)从mysql选择中计算id的出现并将重复与php结合(不在mysql查询中,不同的,分组依据)
【发布时间】:2018-05-19 09:36:48
【问题描述】:

我有一些mysql结果如下:

   ID
  782gt
  782gt
  782gt
  997fd

最终目标是: 一个数组:

'997fd ' => "1"
'782gt' => "3"

我试过了,

(array_count_values($row));

但这并没有汇总和合并值。这是针对高负载情况的,因此我在实际查询、临时表等中避免使用 distinct 和 groupby...

【问题讨论】:

  • 你为什么说array_count_values() 不合并并获得值的总数?它实际上就是这样做的......
  • array_count_values 将数组作为其参数。你确定$row 是一个数组吗? var_dump($row); 带给你什么?
  • 它是一个数组,但是显示每个单独的 id 并在它们旁边显示数字 1。

标签: php mysql arrays count


【解决方案1】:

您提到这可能是一个高数据加载操作,并且您试图避免在查询中使用GROUP BY。然而,数据库确实是进行这种计算的最佳场所。所以我推荐一个简单的GROUP BY查询:

SELECT ID, COUNT(*) AS cnt
FROM yourTable
GROUP BY ID;

【讨论】:

  • 实际上,这是一个“高负载”情况 - 可能不是一回事。
  • @Strawberry 我还是说数据库应该以某种方式参与进来。
  • 我通常也会,但是这可能会在将来出现问题,此查询将轮询大型数据库。到目前为止,一切都已实现,避免了 distinct 和 group by
  • @SeanAA 然后可能会考虑使用某种缓存。
猜你喜欢
  • 2012-01-01
  • 1970-01-01
  • 2016-09-18
  • 2010-11-04
  • 2017-04-27
  • 2010-11-12
  • 2014-02-26
  • 2017-03-28
  • 1970-01-01
相关资源
最近更新 更多