我读了很多帖子,但还是没明白其中的意思。
我创建了一个临时表来测试我的怀疑。
create table ids(id int(1));
我曾经认为如果我指定 int(1)
,那么我只能存储 0-9
。所以我尝试了以下方法
insert into ids(id) values(100000);
它有效!然后我开始搜索以了解这个数字。在所有帖子中,我读到数据类型附近的数字意味着宽度
。我仍然不明白术语mysql中的宽度
。它们是指尺寸吗?如果是这样,大小以字节为单位?。
如果我想实现我的想法,我应该在查询中更改什么?或者我应该从我的 php 代码中限制它吗?
这个宽度对所有数据类型都意味着相同吗?
最佳答案
您可以在 char/varchar 中指定数据/字节长度,但不能指定 int 类型,因为 int 类型在 mysql 中保留其默认长度/容量。
假设 int 将始终为 int(11)
,即使您指定 int(2)
并保留其默认值 4 字节
或 -2,147,483,648 到 +2,147,483,647(如果有签名)
,0 到 4,294,967,295(如果未签名)
。
如果你只想存储最大。 127 整数值则可以保留tinyint,如果直到255则tinyint无符号。
或者你想超越它,那么有smallint,mediumint,然后int,然后bigint。
关于mysql - mysql中数据类型附近的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36124802/