Läs "Utom räckvidd och överflödeshantering
".
Det står:
mysql> SELECT 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'
För att åtgärden ska lyckas i detta fall, konvertera värdet till unsigned;
mysql> SELECT CAST(9223372036854775807 AS UNSIGNED) + 1;
+-------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) + 1 |
+-------------------------------------------+
| 9223372036854775808 |
+-------------------------------------------+
En ändring av en del av din fråga, enligt följande, skulle lösa problemet.
( CAST( quantity AS SIGNED ) - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn
Annars kan du behöva ändra sql_mode
på osignerade operationer.
mysql> SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';
och kör sedan din fråga för att få önskad utdata.
Se även ett liknande inlägg besvarat på ett forum
Hur man får en rad-för-rad MySQL-resultatuppsättning i python
MYSQL-utdata i trädformat ELLER Lägger till nivå (förälder-barn)