簡體   English   中英

我如何在mysql中刪除重復的行並保留已填充其他一些字段的行?

[英]How can i delete duplicates rows in mysql retaining the one which is having some other fields filled?

我有一個表格,格式為:

NAME__TELEPHONE__MONTH___YEAR

aaa______2222_________jan______2018

bbb______2222________ _____________

aaa______2222___________ ___________

在這里,我想檢查重復的電話條目,並刪除除已填寫月份和年份字段的電話條目以外的所有條目。

由於我不是很擅長加入查詢,因此不勝感激..我發現了類似的問題,但使用該方法,我無法保留已提交其他文件的問題。

如果有人可以幫助,請先謝謝您。

我發現最好的答案不是刪除,而是移到其他表,這樣更快,危險性更低,如下所示:

插入tempTableName(id,name,電話,月,年)SELECT DISTINCT id,name,電話,月,年FROM tableName;

希望它能起作用!

為什么不這樣做呢?

delete t from table t
    where month is null and year is null;

嘗試這個 :

delete from table t
inner join 

(select name,Telephone ,row_number() over (partition by name,Telephone order by month,year ) RN
from table 
) temp 
on t.name = temp.name and 
   t.Telephone = temp.Telephone
where RN > 1 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM