Somme de contrôle de SÉLECTIONNER les résultats dans MySQL
Essayer d'obtenir une somme de contrôle des résultats d'une instruction SELECT, essayé ce
SELECT sum(crc32(column_one))
FROM database.table;
Qui a travaillé, mais cela ne fonctionne pas:
SELECT CONCAT(sum(crc32(column_one)),sum(crc32(column_two)))
FROM database.table;
Ouvert à toute suggestion, idée principale est d'obtenir une somme de contrôle valide pour la SOMME des résultats de lignes et de colonnes à partir d'une instruction SELECT.
Qu'entendez-vous par "ne fonctionne pas"? Les messages d'erreur? Résultat inattendu? Le serveur s'est écrasé?
OriginalL'auteur blunders | 2011-05-10
Vous devez vous connecter pour publier un commentaire.
Le problème est que
CONCAT
etSUM
ne sont pas compatibles dans ce format.CONCAT
est conçu pour s'exécuter une fois par ligne dans le jeu de résultats sur les arguments tel que défini par la ligne.SUM
est une fonction d'agrégation, conçu pour s'exécuter sur un ensemble de résultats complet.CRC32
est de la même classe de fonctions commeCONCAT
.Donc, vous avez les fonctions imbriquées dans une voie qui n'ont tout simplement pas jouer bien ensemble.
Vous pourriez essayer:
ou
et les concaténer avec votre langue du client.
Veuillez toujours garder à l'esprit pour votre grandes tables de Attendue "collisions" stackoverflow.com/a/14210379/1896134 Qui pourrait vous donner un
false positive
OriginalL'auteur Dancrumb