表結構sql
1 CREATE TABLE T_VENDOR ( 2 ID BIGINT(12) NOT NULL AUTO_INCREMENT COMMENT 'ID', 3 COUNTRY CHAR(2) DEFAULT NULL COMMENT '國家', 4 VENDOR VARCHAR(20) DEFAULT NULL COMMENT '客戶', 5 CAT_ID BIGINT(12) DEFAULT NULL COMMENT '分類ID', 6 APP_ID BIGINT(12) DEFAULT NULL COMMENT 'APPID', 7 ORDBY BIGINT(12) DEFAULT NULL COMMENT '分類排序(在具體分類下的順序)', 8 STATE CHAR(2) DEFAULT NULL COMMENT '分類狀態(01 啓用, 00禁用)', 9 CREATE_TIME DATETIME DEFAULT NULL COMMENT '建立日期', 10 UPDATE_TIME DATETIME DEFAULT NULL COMMENT '修改時間', 11 PRIMARY KEY (ID), 12 ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
實現目標spa
刪除同一個國家、客戶和分類下的重複APP,保留ID最小的記錄code
處理思路blog
Mysql不能把當前表的查詢做爲當前表的修改條件,故作一個二級子查詢排序
刪除腳本class
DELETE FROM T_VENDOR WHERE ID NOT IN (SELECT MINID FROM (SELECT MIN(ID) AS MINID FROM T_VENDOR GROUP BY COUNTRY,VENDOR,CAT_ID,APP_ID) B);