0

我有一个产品 ID 的 MySQL 表,其中的列显示这些产品中的每一个从我的客户那里获得 1、2、3、4 或 5 星评级的次数。我想在当前为空白的平均评分列中插入一个数字,以指示每种产品的平均评分是多少。

如何计算每个产品 ID 的平均评分,然后修改表格以将此平均评分插入平均评分列?理想情况下,我希望每天使用 php 脚本和 cron 作业运行此 SQL 语句,以重新计算平均评分并更新此表,因为每个产品记录了更多评分。

表格布局示例如下:

Product ID | 1 | 2 | 3 | 4 | 5 | Average Rating

1294518    | 0 | 3 | 3 | 2 | 4 | ?

9226582    | 0 | 0 | 1 | 0 | 0 | ?

3946583    | 0 | 3 | 6 | 1 | 0 | ?

7392588    | 1 | 0 | 0 | 0 | 0 | ?

1196585    | 0 | 1 | 0 | 5 | 6 | ?

4285385    | 0 | 2 | 3 | 3 | 1 | ?
4

1 回答 1

3

你有没有尝试过:

UPDATE table
SET aveRate = (rate1 + rate2*2  + rate3*3  + rate4*4 + rate5*5) /
                           (rate1 + rate2 + rate3 + rate4 + rate5)

我错过了什么吗?

于 2013-05-23T11:21:00.220 回答