MYSQL>;在int(11)中插入蒸汽id,且nosteam帐户似乎很长

MYSQL>;在int(11)中插入蒸汽id,且nosteam帐户似乎很长,mysql,Mysql,我的一个朋友向我求助,他有steam游戏的服务器。他使用一个mysql数据库,在他的游戏中有一个储存STEAM ID(游戏中玩家的ID)的插件 我已经测试了游戏外的数据(STEAM ID从64位转换为32位),并将其与插入db中的数据进行了比较。。。结果不一样 奇怪的是,一个ID“215032574”在mysql数据字段int(11)中变成了“-2144934722” 我已经测试了游戏中的所有PHP和SMX代码,以验证所有数据。。。根据我的说法(但我不确定),它将来自SQL和数据(ID)长度的关

我的一个朋友向我求助,他有steam游戏的服务器。他使用一个mysql数据库,在他的游戏中有一个储存STEAM ID(游戏中玩家的ID)的插件

我已经测试了游戏外的数据(STEAM ID从64位转换为32位),并将其与插入db中的数据进行了比较。。。结果不一样

奇怪的是,一个ID“215032574”在mysql数据字段int(11)中变成了“-2144934722”

我已经测试了游戏中的所有PHP和SMX代码,以验证所有数据。。。根据我的说法(但我不确定),它将来自SQL和数据(ID)长度的关系,而不是代码

是否可能ID的长度太大(可能是因为无符号的ID值?)并且被转换为负值?我不知道如何转换为负值

我能做些什么来解决这个问题?例如,我设想将int(11)更改为varchar(128)。。。但这对我来说太残忍和不正常了

有人能帮忙吗

干杯。

带符号的
INT
s(
11
与字段可以存储的最大值无关)最多可以存储2147483647个值
UNSIGNED INT
s最多可以存储4294967295的值。但是,由于您编写了存储215032574后得到的值为负值,因此您的字段不是无符号的,因此只能存储2147483647以下的值

假设您的字段上没有主键或外键约束,您可以
ALTER
使其
UNSIGNED
,如下所示:
ALTER TABLE streamids MODIFY COLUMN streamid INT(11)UNSIGNED

带符号的
INT
s(
11
与字段可以存储的最大值无关)最多可以存储2147483647个值
UNSIGNED INT
s最多可以存储4294967295的值。但是,由于您编写了存储215032574后得到的值为负值,因此您的字段不是无符号的,因此只能存储2147483647以下的值


假设您的字段上没有主键或外键约束,您可以
ALTER
使其
UNSIGNED
,如下所示:
ALTER TABLE streamids MODIFY COLUMN streamid INT(11)UNSIGNED

好的,只需将字段authId的结构从int()更改为bigint()即可解决问题


ALTER TABLE
DBTABLE
CHANGE
FIELD
FIELD
BIGINT(255)NOT NULL

确定只需将字段authId的结构从int()更改为BIGINT()即可解决问题


ALTER TABLE
DBTABLE
CHANGE
FIELD
FIELD
BIGINT(255)NOT NULL

响应良好!完美的解释!如果我将结构从int改为bigint(),会怎么样?反应很好!完美的解释!如果我将结构从int更改为bigint(),该怎么办?