J'ai une table MySQL qui ressemble à peu près comme:combiner les lignes de comptage dans MySQL
value | count
-------------
Fred | 7
FRED | 1
Roger | 3
roger | 1
qui est, il a été créé avec ops chaîne en dehors de MySQL, de sorte que les valeurs sont et trailing- Case- sensible aux espaces blancs.
Je veux que ça ressemble à:
value | count
-------------
Fred | 8
Roger | 4
C'est, géré par MySQL, avec value
une clé primaire. Ce n'est pas important lequel (de "Fred" ou "FRED") est gardé.
Je sais comment faire cela dans le code. Je sais aussi comment générer une liste de valeurs de problèmes (avec une auto-jointure). Mais je voudrais proposer une mise à jour SQL/supprimer pour migrer ma table, et je ne peux penser à rien. Si je savais qu'aucune paire d'enregistrements avait des variantes d'une valeur, avec le même nombre (comme ("Fred", 4) et ("FRED", 4)), alors je pense que je peux le faire avec un auto-joint pour copier les comptes, puis une mise à jour pour supprimer les zéros. Mais je n'ai pas une telle garantie.
Y at-il quelque chose de simple qui me manque, ou est-ce l'un de ces cas où vous écrivez juste une courte fonction en dehors de la base de données?
Merci!
vous devez normaliser vos chaînes avant l'insertion, vous vous sauver beaucoup d'ennuis – mcabral
mcabral: en général, je suis d'accord, bien que dans le contexte de mes données réelles, il ne sait pas ce qui normalisé ». – Ken