天天看點

mysql中删除兩條重複的資料,隻保留一條

鑒于2條完全一樣的資料,無法差別,隻好讓他們不一樣,于是插入一列自增長的列,需注意的是 自增長列必須是主鍵

alter table table_name add column id int(11) PRIMARY KEY AUTO_INCREMENT;

delete from bill_order_handle

where draft_id in

(select draft_id

from (

select max(draft_id) as draft_id,count(id) as ucount

from bill_order_handle

group by id

having ucount >1

order by ucount desc

) as tab );

ALTER table table_name DROP column id;

ALTER table table_name add PRIMARY KEY (user_role_id) 

解釋一下過程

由于種種原因沒有給表做主鍵,導緻有了完全一樣的資料

1、給表增加一個自增長的列作為主鍵,這樣的話,完全重複的資料就有了不一樣的地方

2、删除重複的列中ID較大的那一個

3、删除掉新增的主鍵ID

4、把原來表中的一列設定為主鍵