mysql 设置字段长度为啥 一般是 4 的倍数?

2015-05-04 10:32:13 +08:00
 hobbyliu

mysql 设置字段长度为啥 一般是4的倍数?
比如 int(4) 而不是 int(3)

7880 次点击
所在节点    MySQL
34 条回复
iyaozhen
2015-05-04 15:35:41 +08:00
int 还要设置值吗?直接 int(11),设置啥都一样。
cmingxu
2015-05-04 16:33:47 +08:00
int(11)这玩意实在容易迷惑人, 这东西就是给client用的, 告诉client该用多宽来显示字段里面内容的。
imn1
2015-05-04 16:54:49 +08:00
4*8=32 bits
lito
2015-05-04 17:07:39 +08:00
@JayFang1993 我也是!
hobbyliu
2015-05-04 17:22:16 +08:00
@cmingxu 但是如果 我 设置 int(1) 要 insert 9999 进入,貌似报错,按道理 1 只是显示,和存储无关 应该能存进去啊
elvba
2015-05-04 17:42:15 +08:00
@perssy 这才是整个楼层中的最全面的正解。
elvba
2015-05-04 17:45:02 +08:00
@hobbyliu 确定 sql 语句没错? 设置 int(1), 99999999 都能存进去。
hobbyliu
2015-05-04 18:01:19 +08:00
@elvba 嗯 确实如此,也能塞进去。那么问题来了 int(x) 这个 x 可以影响什么,能否举例说明?
elvba
2015-05-04 18:21:21 +08:00
@hobbyliu 10楼的解释很全面了,对于 int 型,这个 x 只有你在设置了零填充,并且只有使用 mysql 命令行工具时,才会有用,也就是说……这个东西并没有什么用嘛,无视掉都可以。
kchum
2015-05-04 18:44:59 +08:00
10# 正解
29# 更让人明白…
hobbyliu
2015-05-04 19:11:51 +08:00
@elvba 哪 varchar(x) 呢?
lostarray
2015-05-04 22:58:23 +08:00
@hobbyliu 这个就是真的设置最大长度了
thinkmore
2015-05-05 09:59:45 +08:00
限制位数而已,我还用int(10)呢
mingyun
2015-05-24 11:08:25 +08:00
亲测,int(2) 也能插入12344,看来没什么用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/188267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX