Ceci est similaire à this question, mais il semble que certaines des réponses ne sont pas tout à fait compatibles avec MySQL (ou je ne le fais pas bien), et je vais avoir un diable de temps à déterminer les changements dont j'ai besoin. Apparemment, mon SQL est plus rustre que je ne le pensais. Je cherche aussi à changer une valeur de colonne plutôt que de le supprimer, mais je pense au moins cette partie est simple ...MySQL - marquer tous sauf 1 ligne correspondante
J'ai une table comme:
rowid SERIAL fingerprint TEXT duplicate BOOLEAN contents TEXT created_date DATETIME
Je veux Dupliquer = vrai pour tous sauf le premier (par created_date) de chaque groupe par empreinte digitale. Il est facile de marquer tous les des lignes avec des empreintes digitales en double comme des dupes. La partie sur laquelle je suis coincé est de garder le premier. Une des applications qui remplit la table contient des charges de données volumineuses, plusieurs travailleurs chargeant des données provenant de différentes sources, et les données des travailleurs ne sont pas nécessairement partitionnées par date, il est donc difficile d'essayer de les marquer toutes comme ils entrent (le premier inséré n'est pas nécessairement le premier par date). En outre, j'ai déjà un tas de données là-dedans, je vais devoir nettoyer de toute façon. Je préfère donc avoir une requête relativement efficace que je peux exécuter après un chargement en bloc pour la nettoyer plutôt que de la construire dans cette application.
Merci!
est (fingerprint, created_date) unique? –