2011-03-16 137 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