对一张表的数据进行删除,因为要根据此表某字段进行筛选删除并且要根据另外一个表的数据筛选,数据量巨大用IN操作拖累效率,所以用exists进行数据选择删除,提高效率。
DELETE FROM test_some s WHERE EXISTS(
SELECT 1 FROM
(SELECT device_mac FROM test_big b GROUP BY device_mac HAVING COUNT(device_mac) >1)b
WHERE s.device_mac = b.device_mac
);
注释:从表test_some中删除数据,要删除的数据特征为表test_big中个数大于1的device_mac。将device_mac大于1的数据从表test_some中删除!!!