Dans PHPMYAdmin, je cours un robot d'indexation Web. le robot d'exploration Web récupère parfois les mêmes URL. Dans le robot d'indexation Web, il a indexé des milliers de liens, et je ne veux pas de liens en double. est-il possible de supprimer des lignes similaires dans SQL (la seule différence étant le champ id)Supprimer des lignes très similaires dans MYSQL
Répondre
Si votre table est nommée the_table
et ses champs sont id
(un champ unique) et url
, vous pouvez écrire:
DELETE
FROM the_table
WHERE id NOT IN
(SELECT *
FROM (SELECT MIN(id)
FROM the_table
GROUP BY url
) t
)
;
(Si vous avez d'autres domaines aussi bien, et seulement à supprimer les lignes où tous champs sont identiques, sauf id
, puis il suffit d'ajouter ces champs à la clause GROUP BY
ainsi url
.)
Juste pour info, vous ne pouvez pas référencer la même table dans une sous-requête dans une opération DELETE. Il lancera cette erreur: '# 1093 - Vous ne pouvez pas spécifier la table cible 'the_table' pour la mise à jour dans la clause FROM'. –
@ZaneBien: Oh, j'ai oublié ça. Darn MySQL. Fixé maintenant, merci. :-) – ruakh
ne fait pas ce que je demande, j'ai demandé de supprimer les données en double ce qui ne faisait pas partie de l'étiquette d'identification –
Vous pouvez DELETE
toutes les URL, sauf celui avec l'ID maximale (le plus récent):
DELETE a
FROM tbl a
LEFT JOIN (
SELECT MAX(id) AS id
FROM tbl
GROUP BY url
) b ON a.id = b.id
WHERE b.id IS NULL
Une fois que vous faites cela, il pourrait être une bonne idée de mettre en place une contrainte unique sur le champ URL:
ALTER TABLE tbl ADD UNIQUE idx_unique_url (url);
- 1. MySQL supprimer/combiner des lignes similaires
- 2. Comment puis-je supprimer des lignes similaires avec des critères très spécifiques parmi des lignes similaires?
- 3. Comment supprimer des lignes similaires de ma table dans MySQL?
- 4. Lignes similaires dans MySQL
- 5. Trouver des lignes similaires dans mysql
- 6. supprimer prendre très longtemps! mysql
- 7. Comment supprimer des lignes vides dans Mysql?
- 8. Comment supprimer des lignes dupliquées dans MySQL?
- 9. SQL - Comment "aplatir" plusieurs lignes très similaires en 1
- 10. 2 Référentiels pour des entités très similaires
- 11. supprimer les caractères similaires qui apparaissent dans toutes les lignes
- 12. Mysql, des sujets similaires
- 13. trouver des phrases similaires dans mysql
- 14. Fusionner deux méthodes très similaires
- 15. Comment agréger des colonnes similaires dans une très longue table?
- 16. procédure MySQL pour supprimer des lignes liées
- 17. écrire des valeurs pour des lignes similaires
- 18. combinant des données similaires dans MySQL
- 19. trouver des documents similaires dans mysql
- 20. Comment compter des intérêts similaires dans MySQL
- 21. MySQL Trouver des chaînes similaires
- 22. 2k lignes mise à jour est très lent dans MySQL
- 23. Comment trouver des lignes similaires avec des champs numériques dans MySQL?
- 24. Supprimer des tables ayant exactement 10 lignes dans MySQL
- 25. Comment supprimer des nombres spécifiques de lignes dans mySQL
- 26. Fusionner des lignes dans SQL pour des ID similaires?
- 27. comment grouper des lignes avec des cellules similaires dans jquery?
- 28. MySql Php Trouver des valeurs similaires
- 29. Extraire des lignes entre deux chaînes similaires
- 30. Déchiquetage des lignes MySQL
Le champ 'id' est-il un champ INT auto-incrémenté? –
oui c'est un champ auto-incrémenté –