我只想知道在MySQL中为INT数据类型定义100有什么好处/用途?

`id` INT UNSIGNED ZEROFILL NOT NULL 

推荐答案

Select 类型为ZEROFILL的列时,它会将字段的显示值填充为零,直到列定义中指定的显示宽度为止.大于显示宽度的值不会被截断.注意,ZEROFILL的用法也意味着UNSIGNED.

使用ZEROFILL和显示宽度对数据的存储方式没有影响.它只影响它的显示方式.

下面是一些SQL示例,演示了ZEROFILL的使用:

CREATE TABLE yourtable (x INT(8) ZEROFILL NOT NULL, y INT(8) NOT NULL);
INSERT INTO yourtable (x,y) VALUES
(1, 1),
(12, 12),
(123, 123),
(123456789, 123456789);
SELECT x, y FROM yourtable;

结果:

        x          y
 00000001          1
 00000012         12
 00000123        123
123456789  123456789

Mysql相关问答推荐

MySQL查询获取图书的唯一读取页面数

如何将MySQL与AS&Quot;语法一起用于存储过程返回的表?

对多个数据库运行UPDATE mySQL查询

比较2个mysql json数据类型列

提高bash脚本从大型gml文件读取数据的效率

Group_CONCAT CASE 乘法输出

如何更新一个巨大的表的 50k 行?

如何使用mysql更新列中的json数据

SQL使用LIMIT获取结果和结果中的行数

我在 mysql 查询中需要帮助,我想在年龄之间按年龄过滤器分组,并显示 0 计数之间找不到的数据

为什么这个查询需要超过 5 秒才能运行?

在 SQL 中的 case 语句之后将新列转换为 INT

无法通过迁移在现有表中插入行 - Rails 6

计算每个用户在第二个表中有多少条记录

动态创建内联 SQL 表(用于排除左连接)

MySQL 如何处理并发插入?

将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是什么?

MySQL错误 1005 (HY000): 无法创建表 'foo.#sql-12c_4' (errno: 150)

PHP mySQL - 将新记录插入表中,主键自动递增

MySQL中的base64编码