Maison >base de données >tutoriel mysql >Comment implémenter la vérification des doublons dans MySQL et n'en laisser qu'un
Méthode MySQL pour implémenter la vérification des doublons et n'en conserver qu'un : recherchez d'abord les enregistrements en double redondants dans la table via "select * from" ; puis supprimez les données en double via " delete from " et ne conservez qu'une seule donnée.
Recommandé : "Tutoriel vidéo mysql"
mysql supprime les données en double et ne conserve qu'un seul enregistrement
Supprimez les données en double et conservez l'enregistrement avec le plus petit identifiant dans le nom
delete from order_info where id not in (select id from (select min(id) as id from order_info group by order_number) as b);
delete from table where id not in (select min(id) from table group by name having count(name)>1) and id in (select id group by name having count(name)>1)
(Remarque : la façon dont la clause HAVING définit les conditions pour la clause GROUP BY est similaire à la manière dont WHERE et SELECT interagissent. WHERE La condition de recherche est appliquée avant l'opération de regroupement ; tandis que la condition de recherche HAVING est appliquée après l'opération de regroupement. La syntaxe HAVING est similaire à la syntaxe WHERE, mais la clause HAVING peut faire référence à n'importe quel élément affiché dans la sélection. list )
Extension : SQL : Supprimez les données en double et ne conservez qu'une seule instruction SQL Supprimez les doublons et n'en conservez qu'une parmi des milliers. enregistrements. , il existe des enregistrements identiques, comment pouvons-nous utiliser les instructions SQL pour supprimer les doublons ? 1. Recherchez les enregistrements en double redondants dans la table. (peopleId) Pour jugerselect * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2. Supprimez les enregistrements en double redondants dans la table. Les enregistrements en double sont jugés sur la base d'un seul champ (peopleId), ne laissant que l'enregistrement avec le plus petit rowid
delete from people where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1). 3. Recherchez le tableau Enregistrements en double redondants (champs multiples)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)4 Supprimez les enregistrements en double redondants (champs multiples) dans le tableau, en ne laissant que l'enregistrement avec le plus petit rowid
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)5. . Recherchez le tableau Enregistrements en double redondants (champs multiples), en excluant l'enregistrement avec le plus petit rowid
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)6 Supprimez le premier chiffre à gauche d'un champ :
update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'7. le premier chiffre à droite d'un champ Première place :
update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'8. Supprimez faussement les enregistrements en double redondants (plusieurs champs) dans la table, en excluant l'enregistrement avec le plus petit rowid
update vitae set ispass=-1 where peopleId in (select peopleId from vitae group by peopleId,seq having count(*) > 1) and seq in (select seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1).
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!