Mysql更新记录数

Mysql更新记录数,mysql,Mysql,我有一个“产品记录”表,如下所示: 目前,所有记录的_报告的_列中的值为0 为匹配产品组、产品子组和类型,为每行添加计数报告的最有效方法是什么 例如: 1, 23, 1, 1, count here (i.e. 2); 2, 23, 2, 1, count here (i.e. 1); 3, 23, 1, 1, count here (i.e. 2); 4, 24, 1, 3, count here (i.e. 1); 提前感谢。您可以使用下面的更新声明- UPDATE product_r

我有一个“产品记录”表,如下所示:

目前,所有记录的_报告的_列中的值为0

为匹配产品组、产品子组和类型,为每行添加计数报告的最有效方法是什么

例如:

1, 23, 1, 1, count here (i.e. 2); 
2, 23, 2, 1, count here (i.e. 1);
3, 23, 1, 1, count here (i.e. 2); 
4, 24, 1, 3, count here (i.e. 1);

提前感谢。

您可以使用下面的更新声明-

UPDATE product_records PR
JOIN (SELECT CONCAT(product_group, product_subgroup) ID, COUNT(DISTINCT CONCAT(product_group, product_subgroup)) NUM
      FROM product_records
      GROUP  BY CONCAT(product_group, product_subgroup)) PR2
ON CONCAT(PR.product_group, PR.product_subgroup) = PR2.ID
SET PR.count_of_reports = PR2.NUM

您可以使用以下更新语句-

UPDATE product_records PR
JOIN (SELECT CONCAT(product_group, product_subgroup) ID, COUNT(DISTINCT CONCAT(product_group, product_subgroup)) NUM
      FROM product_records
      GROUP  BY CONCAT(product_group, product_subgroup)) PR2
ON CONCAT(PR.product_group, PR.product_subgroup) = PR2.ID
SET PR.count_of_reports = PR2.NUM

将包含
JOIN
UPDATE
语句与计算每个组计数的子查询一起使用。它是否有效将取决于您是否为用于分组的列编制索引。将包含
JOIN
UPDATE
语句与计算每个组计数的子查询一起使用。是否它的效率将取决于您是否为用于分组的列编制索引。