我有一个像“马克安东尼”,“詹姆斯邦德”等名称的客人名单,其中约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)) –