有没有一种方法可以减少mysql中取决于公共列的行数?

时间:2020-11-02 16:50:58

标签: php mysql

我想根据位置更新这些行,以添加数量并放入具有相同位置的单行中 enter image description here

1 个答案:

答案 0 :(得分:0)

需要两个查询。

UPDATE test t1
JOIN ( SELECT MIN(id) id,
              SUM(quantity) quantity,
              location                                   /* (1) */
              FROM test
              GROUP BY location ) t2 USING (location)    /* (1) */
SET t1.quantity = CASE WHEN t1.id = t2.id
                       THEN t2.quantity
                       ELSE 0
                       END;

DELETE FROM test WHERE !quantity;

fiddle

(1)-使用所有标识要汇总的组的列(例如,对于显示的数据,它可以是order_id, location列对)。