Lees "Afhandeling buiten bereik en overloop
".
Er staat:
mysql> SELECT 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'
Om de bewerking in dit geval te laten slagen, converteert u de waarde naar unsigned;
mysql> SELECT CAST(9223372036854775807 AS UNSIGNED) + 1;
+-------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) + 1 |
+-------------------------------------------+
| 9223372036854775808 |
+-------------------------------------------+
Een wijziging in een deel van uw zoekopdracht, zoals hieronder, zou het probleem oplossen.
( CAST( quantity AS SIGNED ) - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn
Anders kan het nodig zijn om de sql_mode
. te wijzigen op niet-ondertekende operaties.
mysql> SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';
en voer vervolgens uw zoekopdracht uit om de gewenste uitvoer te krijgen.
Zie ook een soortgelijk bericht beantwoord op een forum
Hoe krijg ik een rij-voor-rij MySQL ResultSet in python
MYSQL-uitvoer in boomstructuur OF Niveau toevoegen (Ouder-kind)