Přečtěte si prosím "Ošetření mimo rozsah a přetečení
".
Je tam uvedeno:
mysql> SELECT 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'
Chcete-li, aby operace v tomto případě uspěla, převeďte hodnotu na unsigned;
mysql> SELECT CAST(9223372036854775807 AS UNSIGNED) + 1;
+-------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) + 1 |
+-------------------------------------------+
| 9223372036854775808 |
+-------------------------------------------+
Změna části vašeho dotazu, jak je uvedeno níže, by problém vyřešila.
( CAST( quantity AS SIGNED ) - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn
V opačném případě budete možná muset změnit sql_mode
na nepodepsané operace.
mysql> SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';
a poté spusťte dotaz, abyste získali požadovaný výstup.
Podívejte se také na podobný příspěvek zodpovězený na fóru
Jak získat řádek po řádku ResultSet MySQL v pythonu
Výstup MYSQL ve stromovém formátu NEBO Přidání úrovně (rodič-dítě)