我有一个评价项目的表格。
字段rating
包含我过去常常增加的数值。
这种方法有其优点,但缺点是,我没有过去一个月/ 30天的评级,因为我没有个人评级。
如何查看表格,检查rating
值是否高于1
,如果是,请为每个评分添加新行?
例如 现在的表格
id
| item_id
| rating
1
| 2198
| 42
所以我希望有42个参赛作品。
问题: 如果是这样的话,我可以只使用mysql吗?
答案 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
。这样,您可以直接计算所有月份的项目总评分。
但同样,这种方法会像比较年份一样进行深入检查,同时也会为每次获取最后修改的时间戳等额外开销。