用零填充 mysql INT 字段的开头

发布于 2024-10-20 06:38:16 字数 163 浏览 2 评论 0原文

我在一个大型 MySQL 数据库中有一个 INT 字段,其中包含 INT 字段中的增量数字。这些数字目前是常规自动增量数字(1、2、3),但我需要将它们填充到开头为零的三位数(因此我得到 001、002、003.. 010、011 等)。

我可以在数据库上运行哪些命令来将此列更改为我需要的格式?

I have an INT field in a large MySQL database containing incremental numbers in an INT field. These numbers are currently regular autoincrement numbers (1, 2, 3) but I need to pad them to three digits with zeroes at the beginning (so I get 001, 002, 003.. 010, 011, etc).

What commands can I run on my database to change this column into the format I need?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪#恶を代价 2024-10-27 06:38:16

您可以向列添加 ZEROFILL 属性以填充数据库中的数据,或者在查询时

SELECT LPAD(CONVERT(`col`,VARCHAR(3)),3,'0')

检索格式化为 3 位数字的数据

You can add a ZEROFILL attribute to the column to pad the data in the database or, when querying,

SELECT LPAD(CONVERT(`col`,VARCHAR(3)),3,'0')

to retreive the data formatted as a 3 digit number

メ斷腸人バ 2024-10-27 06:38:16

数据库中的数字字段中的数据不存在前导零;数据并不是以这种方式存储的,就像它不是以罗马数字存储的那样。你所拥有的只是数字三;因此,如果您想获取字符串“003”,您有两个选择:

  • 更改为使用数据库中的字符串字段:不推荐,因为您无法轻松获取递增数字。
  • 从数据库中检索数字时对其进行格式化以添加前导零:更好,但它有其自身的缺点 - 例如,比较会更慢,因为它们没有索引。

There is no such thing as having leading zeroes on data in a numeric field in the database; the data just isn't stored that way, any more than it is stored in roman numerals. All you've got is the number three; so if you want to get the string "003" out, you've got two options:

  • Change to use a string field in the database: not recommended because you can't easily get incrementing numbers.
  • Format the number as you retrieve it from the database to add leading zeroes: better, but it has its own disadvantages - e.g. comparisons will be slower because they aren't indexed.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文