将具有总和值的字段更改为单个条目

时间:2016-05-13 10:07:10

标签: mysql

我有一个评价项目的表格。 字段rating包含我过去常常增加的数值。 这种方法有其优点,但缺点是,我没有过去一个月/ 30天的评级,因为我没有个人评级。

如何查看表格,检查rating值是否高于1,如果是,请为每个评分添加新行?

例如 现在的表格

id | item_id | rating

1 | 2198 | 42

所以我希望有42个参赛作品。

问题: 如果是这样的话,我可以只使用mysql吗?

2 个答案:

答案 0 :(得分:1)

您需要一个存储过程来执行此操作,但您可以在mysql中执行此操作。

由于您未添加表格定义,我将假设Arrays.stream(l).forEach(System.out::println); id密钥,您不希望保留原始值。 否则,请更改密钥或使用带有auto_increment密钥的新(临时)表。

auto_increment

答案 1 :(得分:0)

在向项目添加评分时,每次只使用INSERT而不是UPDATE。同时使用当前timestamp作为条目。 这样您就可以轻松地在两个日期之间总结项目的评分。

除了一些冗长的解决方案,每次对项目进行UPDATE评分计数并添加last modified timestamp。 更新时,您可以比较last modified timestamp和当月的月份。如果它们是相同的,您可以UPDATE,如果它们不同,您将执行INSERT。这样,您可以直接计算所有月份的项目总评分。 但同样,这种方法会像比较年份一样进行深入检查,同时也会为每次获取最后修改的时间戳等额外开销。