Mysql
 sql >> база данни >  >> RDS >> Mysql

BIGINT UNSIGNED VALUE е извън обхвата My SQL

Моля, прочетете „Извън обхват и обработка на препълване ".
Той пише:

mysql> SELECT 9223372036854775807 + 1;

ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'

За да позволите на операцията да успее в този случай, преобразувайте стойността в unsigned;

mysql> SELECT CAST(9223372036854775807 AS UNSIGNED) + 1;
+-------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) + 1 |
+-------------------------------------------+
|                       9223372036854775808 |
+-------------------------------------------+

Промяната на част от вашата заявка, както следва, ще реши проблема.

( CAST( quantity AS SIGNED ) - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn

В противен случай може да се наложи да промените sql_mode върху неподписани операции.

mysql> SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';

и след това изпълнете заявката си, за да получите желания резултат.

Вижте също подобна публикация с отговор във форум

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Вмъкване на данни от една таблица в друга

  2. mysql изберете записи, по-големи от 3 месеца

  3. Какво не е наред с тази mysql заявка?

  4. спрете да вмъквате данни в базата данни при опресняване на страницата

  5. Вземете резултати от mysql въз основа на географска ширина и дължина