J'ai cette table avec une colonne int(11)
et des centaines de millions de lignes. Quand je lance une requête commeComment faire face à mysql sum() débordement d'entier silencieux?
SELECT SUM(myIntColumn) as foo FROM myTable;
la valeur de retour n'a pas de sens - il est plus petit que la valeur plus grand max simple. Mes valeurs pour cette colonne atteignent un maximum autour de 500m, et l'int signé devrait être capable de gérer ~ 2bil, donc je suppose que mysql connaît un débordement d'entier, et garde maman à ce sujet.
Que faire?
divers détails qui pourraient juste matière, mais probablement pas:
mysql Ver 14.12 Distrib 5.0.75, for debian-linux-gnu (x86_64) using readline 5.2
mysqld Ver 5.0.75-0ubuntu10 for debian-linux-gnu on x86_64 ((Ubuntu))
Linux kona 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:45:36 UTC 2009 x86_64 GNU/Linux
ce lien aider? http://stackoverflow.com/questions/323294/datatype-of-sum-result-in-mysql –
J'ai vu cela, mais la question semblait non trivialement différente en raison du comportement entier/chaîne que l'affiche posait à propos. Mon MySql n'est pas assez profond pour comprendre ces types de subtilités. Et ma base de données est si grande que l'expérimentation interactive n'est pas possible ... quelques requêtes à moi ont pris des heures! –