我有一個像「馬克安東尼」,「詹姆斯邦德」等名稱的客人名單,其中約1000人。 現在在另一個表中我有類似的列表。我想清理我的名字的列表,以便刪除也是清單2.如何刪除MySql中的重複項?
所以,如果詹姆斯·邦德是名單2,那麼它應該從列表中刪除該字段1
我有一個像「馬克安東尼」,「詹姆斯邦德」等名稱的客人名單,其中約1000人。 現在在另一個表中我有類似的列表。我想清理我的名字的列表,以便刪除也是清單2.如何刪除MySql中的重複項?
所以,如果詹姆斯·邦德是名單2,那麼它應該從列表中刪除該字段1
在這裏你去任何名稱。
Delete FROM table1
WHERE name1
IN
(
SELECT
name2
FROM table2
);
我試過你的方法在我的160.000列表和phpmyadmin掛出了30分鐘,然後我重新啓動了mysql服務器 –
雖然IN不能正常工作通常對於大量的數據集,如果它已經掛起你的服務器,我會懷疑問題是否與索引有關。你在他們各自的表上的name1和name2字段上有索引嗎? – Kickstart
可以使用子查詢做到這一點。
delete
from list1
where exists (select 1
from list2
where list2.name = list1)
從table1中選擇row_id其中name(從table2中選擇名稱)這裏是您的常用項目列表。 DELETE FROM table1 where row_id in(select table_id from table1 where name in(select from table2)) –