首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BIGINT无符号值超出了My的范围。

BIGINT无符号值超出了My的范围。
EN

Stack Overflow用户
提问于 2012-07-28 05:42:40
回答 10查看 62.8K关注 0票数 28

我得到了以下错误

#1690-BIGINT无符号值超出了'(legends.spawns.quantity -tmp_field中的范围‘

这是我的查询

代码语言:javascript
复制
SELECT drops.common, drops.uncommon, drops.rare, drops.legendary, spawns . *
     , ( quantity - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn
     , mobs . * 
FROM spawns
     LEFT JOIN mobs
          USING ( mob_id ) 
     LEFT JOIN game_moblist
          USING ( spawn_id ) 
     LEFT JOIN drops ON ( 
               SELECT MAX( level ) 
                 FROM drops
                WHERE drops.type = mobs.drop_list
                  AND drops.level <= spawns.level ) 
GROUP BY spawn_id
HAVING quantity_to_spawn >=0
       AND next_spawn <=0

我已经盯着它看了很久了,很抱歉。

spawns表- count game_moblist.spawn_id是所有可能的行的0,但只有1(我删除了一行以测试查询)

否则的数据是相当长的,与我的问题无关,我想。

知道如何避免这个错误吗?

EN

Stack Overflow用户

回答已采纳

发布于 2012-07-28 19:54:03

请阅读"http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html“。

上面写着:

从MySQL 5.5.5开始,数值表达式计算期间的溢出会导致错误。例如,最大的有符号BIGINT值是9223372036854775807,因此下面的表达式会产生一个错误。

代码语言:javascript
复制
mysql> SELECT 9223372036854775807 + 1;

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

若要使操作在这种情况下成功,请将值转换为无符号;

代码语言:javascript
复制
mysql> SELECT CAST(9223372036854775807 AS UNSIGNED) + 1;
+-------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) + 1 |
+-------------------------------------------+
|                       9223372036854775808 |
+-------------------------------------------+

对部分查询的更改将解决此问题,如下所示。

代码语言:javascript
复制
( CAST( quantity AS SIGNED ) - COUNT( game_moblist.spawn_id ) ) AS quantity_to_spawn

否则,您可能需要在未签名操作上更改sql_mode

代码语言:javascript
复制
mysql> SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';

然后运行您的查询以获得所需的输出。

也可以在论坛http://translate.google.co.in/translate?hl=en&sl=de&u=http://www.klamm.de/forum/f28/fehler-1690-bigint-unsigned-value-is-out-of-range-in-377479.html&prev=/search?q=http://www.klamm.de/forum/f28/fehler-1690-bigint-unsigned-value-is-out-of-range-in-377479.html&hl=en&biw=1024&bih=619&prmd=imvns&sa=X&ei=SkEUULywJ47jrAeKzYHwCg&sqi=2&ved=0CCkQ7gEwAA上看到类似的回复。

票数 41
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11698613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档