首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tinyint(M)在MySQL中的用途是什么?

问tinyint(M)在MySQL中的用途是什么?
EN

Stack Overflow用户
提问于 2022-02-04 15:08:52
回答 1查看 81关注 0票数 2

这更像是一个学术问题。在MySQL数据库中,我知道tinyint(M)及其与tinyint(1)的区别已经在这个站点上讨论过了,但我想知道的是其他一些东西。

是否可以用一列“已评审的TINYINT(5)”来将5个不同的布尔复选框的值存储在前面的形式中?我正在考虑将其作为一个数组来处理。如果是,如何引用它们?像REVIEWED(3)或REVIEWED3之类的东西是否适用于引用它们的元素?是否有一种语法来检查它们的所有元素是1还是0(或null)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 15:20:02

TINYINT(1)和TINYINT(5)和TINYINT(12)或任何其他长度实际上是完全相同的。它们都是8位有符号整数.它们支持从-128到127的整数值。如果列定义为无符号整数,则值从0到255。

那“长度”这个论点是怎么回事?没什么。它不影响整数的大小、位数或值的范围。该参数仅为显示提示。除非您使用ZEROFILL选项,否则它是无用的。

代码语言:javascript
复制
mysql> create table mytable (i1 tinyint(1) zerofill, i2 tinyint(5) zerofill, i3 tinyint(12) zerofill);
Query OK, 0 rows affected (0.04 sec)
    
mysql> insert into mytable values (255,255,255);
Query OK, 1 row affected (0.02 sec)

mysql> select * from mytable;
+------+-------+--------------+
| i1   | i2    | i3           |
+------+-------+--------------+
|  255 | 00255 | 000000000255 |
+------+-------+--------------+

ZEROFILL选项强制对该列进行无符号处理,当您查询该列时,它会将结果填充为零,直至您为该列定义的长度。零不存储在数据库中,它们仅在获取查询结果时添加。

整数的“长度”参数具有误导性,给MySQL用户造成了许多混乱。事后看来,让语法像TINYINT ZEROFILL(12)这样更好,但现在改变它已经太晚了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70988614

复制
相关文章

相似问题

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