[英]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.