【问题标题】:Group mysql database records by splitting into N arrays with php通过用php拆分成N个数组来分组mysql数据库记录
【发布时间】:2016-01-26 02:32:56
【问题描述】:

我有一个包含数千行的 mysql 数据库,每行包含一个产品的销售交易数据。这些产品具有唯一 ID,产品总数未定义。

ID      产品名称     交易 ID     日期

123 产品 1 ergkljdlkjfgklgh 2015 年 9 月 1 日
144 产品 5 eyghfeoopjfgkl 2015 年 9 月 5 日
123 产品 1 jdlkjfghrttgklgej 2015 年 9 月 8 日
144 产品 5 ngfukhjkgfhjjjcs 2015 年 9 月 15 日
123 产品 1 utebhjgdsdhjfdt 2015 年 9 月 20 日

等等。

在 php 的帮助下,我需要将数据库转换为一个简单的列表,其中每一行包含唯一的产品 ID、产品名称、该产品在数据库中的出现次数以及销售日期连接成一个字符串(稍后将处理)。

为了说明,上表应转换为:

ID      产品名称     销售数量     日期

123 产品 1 3 2015 年 9 月 1 日_2015 年 9 月 8 日_2015 年 9 月 20 日
144 产品 5 2015 年 9 月 5 日_2015 年 9 月 15 日

我认为这样做的方法与对不同数组的排序和循环有关,但是我有点困惑,无法完全理解它。

我是否按 id 排序,将所有唯一 id 放入数组,遍历数组以检索项目的组和数量,为每个组创建一个单独的数组以获取日期?

也许以前遇到过此类挑战的人可以为我指明正确的方向:)

【问题讨论】:

  • 在查询中ORDER BY ID - 然后迭代结果

标签: php mysql arrays sorting multidimensional-array


【解决方案1】:

您是要创建新表还是在同一个表上工作。如果它是不同的,那么很简单,您可以在列上进行选择,然后使用 ID 对它们进行排序。要获取日期,您可以使用 COALESCE(field1, '_') ||合并(字段 2,'')。否则,您可以通过使用保存日期值的全局变量在 PHP 中以编程方式处理该问题,然后使用点运算符为产品的每个实例附加日期。

【讨论】:

  • 是的,我要创建一个带有结果的新表
  • 那么我认为它相当简单。
  • 不确定 COALESCE 是做什么的,数据库中没有 NULL 字段,我打算使用 php 附加日期,只是不确定数组部分
  • 你也可以做类似..select concat(column1,'_', column2)
  • 我是否按 id 排序,将所有唯一的 id 放入数组,遍历数组以检索项目的组和数量,为每个组创建一个单独的数组以获取日期?
猜你喜欢
  • 2013-03-12
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
  • 2017-03-03
相关资源
最近更新 更多