根據你的問題,可以判斷你已經很熟悉sql了,那我就不介紹sql的原理了,下面我已一個例子來回答下如何合併相同的行。
新建一個倉庫基礎表,有程式碼、名稱、地點。
CREATE TABLE `storage` (
`storage_id` int(11) NOT NULL AUTO_INCREMENT COMMENT "主鍵",
`storage_code` varchar(25) NOT NULL COMMENT "倉庫程式碼",
`storage_name` varchar(50) NOT NULL COMMENT "倉庫名稱",
`storage_place` varchar(100) NOT NULL COMMENT "地點",
PRIMARY KEY (`storage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
為了重現你的問題,我準備插入兩條一樣的資料。如下:
INSERT INTO `storage` VALUES ("1", "SHA", "上海庫", "上海");
INSERT INTO `storage` VALUES ("2", "GZA", "廣州庫", "廣州");
INSERT INTO `storage` VALUES ("3", "SHA", "上海庫", "上海");
從上圖可以看出資料有兩條重複的行,那我下面用sql來實現去除重複行。
select max(storage_id),storage_code,storage_name,storage_place from `storage`
GROUP BY storage_code,storage_name,storage_place
從sql可以看出我採用取id最大值,並且對另外三個重複的欄位進行分組,這就是典型的聚合。
根據你的問題,可以判斷你已經很熟悉sql了,那我就不介紹sql的原理了,下面我已一個例子來回答下如何合併相同的行。
建立表新建一個倉庫基礎表,有程式碼、名稱、地點。
CREATE TABLE `storage` (
`storage_id` int(11) NOT NULL AUTO_INCREMENT COMMENT "主鍵",
`storage_code` varchar(25) NOT NULL COMMENT "倉庫程式碼",
`storage_name` varchar(50) NOT NULL COMMENT "倉庫名稱",
`storage_place` varchar(100) NOT NULL COMMENT "地點",
PRIMARY KEY (`storage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入資料為了重現你的問題,我準備插入兩條一樣的資料。如下:
INSERT INTO `storage` VALUES ("1", "SHA", "上海庫", "上海");
INSERT INTO `storage` VALUES ("2", "GZA", "廣州庫", "廣州");
INSERT INTO `storage` VALUES ("3", "SHA", "上海庫", "上海");
從上圖可以看出資料有兩條重複的行,那我下面用sql來實現去除重複行。
去除重複行select max(storage_id),storage_code,storage_name,storage_place from `storage`
GROUP BY storage_code,storage_name,storage_place
從sql可以看出我採用取id最大值,並且對另外三個重複的欄位進行分組,這就是典型的聚合。