2011-03-16 84 views
0

我正在购物车。所选项目基于搜索查询存储在数据库内。mysql查询分组

如何在sku中添加行数,类型和颜色是相同的值?

例如:

sku type color quantity 
--------------------------- 
1 type1 blue 5 
1 type1 blue 2 
2 type1 blue 5 
1 type1 green 5 

我的新行应该是:

sku type color quantity 
--------------------------- 
1 type1 blue 7 
2 type1 blue 5 
1 type1 green 5 

公告第一行的数量现在是7

如何才能做到这一点?我试过GROUP BY,但不知道如何使它动态匹配所有。

回答

2
SELECT sku,type,color, 
     SUM(quantity) 
    FROM table 
GROUP BY sku,type,color 
+0

感谢您的编辑。 – AbiusX 2011-03-16 04:13:44

+0

我可以如何使用这些值更新表后的表?并删除其他重复现在.. – TDSii 2011-03-16 04:18:24

+0

INSERT INTO table2(select_statement_above); DROP表1; – AbiusX 2011-03-16 04:23:19

1
SELECT sku, type, color, sum(quantity) 
FROM theTable 
GROUP BY sku, type, color 

这将做到这一点。

+0

我如何使用这些值更新表后?并删除其他人..记得我想清理表 – TDSii 2011-03-16 04:18:55

+0

为什么你想改变表?只需使用这些结果。 – 2011-03-16 04:26:01

+0

的目的是清理我的表 – TDSii 2011-03-16 04:27:38

0
CREATE TEMPORARY TABLE IF NOT EXISTS tmpTable LIKE dataTable 

DELETE FROM tmpTable 

Insert into tmpTable 
select sku,type,color,sum(quantity) from dataTable 
group by sku,type,color 

DELETE FROM dataTable 

INSERT INTO dataTable 
SELECT * FROM tmpTable 
+0

我可以如何使用这些值更新表格?并删除其他人..记得我想清理表 – TDSii 2011-03-16 04:19:28

+0

不能完全理解你的问题。从table1中删除;插入到表1中选择sku,类型,颜色,总和(数量)从... 组通过sku,类型,颜色?或者你想要替换表中的数据? – 2011-03-16 04:38:34

+0

我有一个凌乱的桌子,我想清理它,结果是完全相同的命令你做的。 – TDSii 2011-03-16 04:54:41