Cet article présente principalement quelques instructions SQL complexes de Mysql ( Requête et Supprimer les lignes en double peuvent s'y référer
).1. Rechercher les lignes en double
SELECT * FROM blog_user_relation a WHERE (a.account_instance_id,a.follow_account_instance_id) IN (SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*) > 1)
2. Supprimer les lignes en double (en garder une)
PS : à cause de la suppression de MySQL, si c'est le cas. est dans la condition Where de la table supprimée et que la table existe également dans In, elle ne peut pas être supprimée.
/*创建个临时表*/ CREATE TABLE blog_user_relation_temp AS ( SELECT * FROM blog_user_relation a WHERE (a.account_instance_id,a.follow_account_instance_id) IN ( SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*) > 1) AND relation_id NOT IN (SELECT MIN(relation_id) FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*)>1)); /*删除数据*/ DELETE FROM `blog_user_relation` WHERE relation_id IN (SELECT relation_id FROM blog_user_relation_temp); /*删除临时表*/ DROP TABLE blog_user_relation_temp;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!