简单却强大:MySQL ZEROFILL让编号管理变得更轻松

news2025/1/12 20:56:48

点击上方蓝字关注我

6408aaacc190382961f58c30fa221550.png

    在MySQL中,ZEROFILL是一种用于在数字字段上进行填充零的属性。该属性通常用于确保数字达到指定长度时,左侧用零进行填充。这在某些特定场景下非常有用,例如确保订单号或者其他标识符具有固定的长度。

1.  案例演示

1.1  语法简介

关于ZEROFILL属性是作用于数字类型的列上的,属于列属性,对于的语法简单描述如下:

CREATE TABLE your_table (
    your_column INT ZEROFILL,
    -- 或者
    your_column INT UNSIGNED ZEROFILL
);

1.2  案例

下面简单举例演示,假设我们有一个存储订单编号的表,我们希望订单编号始终为5位数,并在不足5位时用零进行填充。

先创建表,SQL脚本如下:

# 创建表
CREATE TABLE orders (
    id  int primary key auto_increment,
    order_id INT(5) UNSIGNED ZEROFILL,
    product_name VARCHAR(50),
    order_date DATE
);

写入一些数据

INSERT INTO orders (order_id, product_name, order_date) VALUES
(1, 'Product A', '2024-01-10'),
(22, 'Product B', '2024-01-11'),
(333, 'Product C', '2024-01-12'),
(4444, 'Product D', '2024-01-13');

查看结果如下

75b1b4287cfe30af807b0fb2f71cabaf.png

可见结果显示时按照5位数显示订单编码字段内容,不足5位的在其左侧进行前导0填充。

1.3  超过指定长度如何显示

上例中,如果插入的订单编号超过5位,存储和显示会截断么?答案是否定的,例如:

# 插入一条订单编号是6位的记录
INSERT INTO orders (order_id, product_name, order_date) 
VALUES  (1111111, 'Product E', '2024-01-10')

结果显示如下,可以正常显示:

c1a49429895fcc0aeafbba535bce1ce5.png

2.   其他方式实现类似功能

除了ZEROFILL属性,还可以通过在查询时使用LPAD函数来实现类似的功能。LPAD的三个参数分别为列名、目标长度、和填充字符。例如:

SELECT LPAD(order_id, 8, '0') AS padded_order_id, product_name, order_date
FROM orders;

e43a0f32405a7437a30cbd941cf57ffe.png

差别

使用LPAD指定长度时,会出现截断的情况,例如:

SELECT LPAD(order_id, 5, '0') AS padded_order_id, product_name, order_date
FROM orders;

结果为:

a0a48d5eba580e6b847d136599f6f186.png

3.  小结

 在以下场景中,可以考虑用zerofill属性或使用lpad函数来实现需求:

  • 标识符填充:在需要保持标识符固定长度的场景下,比如订单编号、产品编号等

  • 对齐要求:当在表格或报告中需要数字对齐时,ZEROFILL属性可以确保数字始终占据相同的字符宽度

  • 数据整齐性:用于提高数据整齐性,方便人工查看和处理

3c7bc0715ea9df6e1661e2b0224c4e9f.png

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

08116aa6b0cbf5a0cfaf9cdf7350a4c3.png

扫码关注     

e913c9222126b4545cd58db1ee2c7cd6.jpeg

90fd30b54d2644c78ce786c9c91c01f6.png

a81e2d4bd60dc12997158cbe495bf5c1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1373015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬取哈尔滨旅游爆火视频数据并进行可视化分析

前言 哈尔滨作为中国北方的重要城市,独特的冰雪风情和丰富的文化底蕴而受到游客的青睐。随着抖音等短视频平台的兴起,越来越多关于哈尔滨旅游的视频在网络上出现文章旨在利用Python编程语言,从音视频网站上抓取哈尔滨旅游抖音相关视频数据&a…

K2P路由器刷OpenWrt官方最新版本固件OpenWrt 23.05.2方法 其他型号的智能路由器OpenWrt固件刷入方法也基本上适用

最近路由器在开机时总出问题,于是就那他来开刀,直接刷一个OpenWrt官方最新版本的固件, 刷其他第三方的固件总是觉得不安全, 而且很多第三方固件都带了些小工具,始终会有安全隐患, 而且占用内存空间太多,本来这个东西就没有多少内存,于是就干脆刷一个官方的原始固件(才6.3M, 相…

Qt5插件开发入门+示例

目的 1、为什么用插件 现在大家最讲模块化开发了,怎么算模块化,分成不同的类,分成不同的文件夹,高内聚,低耦合,这个当然算是。 从高层次讲,它们是在一起的,只是逻辑上的模块化,不是物理上的模块化,或者说不是彻底的模块化,彻底的模块化应该像一个辆自行车一样,车…

Sentinel限流熔断

官网:https://sentinelguard.io/zh-cn/docs/introduction.html github文档:https://github.com/alibaba/Sentinel/wiki Sentinel 是一款面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从流量控制、 熔断降级 、系…

使用Vivado Design Suite平台板、将IP目录与平台板流一起使用

使用Vivado Design Suite平台板流 Vivado设计套件允许您使用AMD目标设计平台板(TDP)创建项目,或者已经添加到板库的用户指定板。当您选择特定板,Vivado设计工具显示有关板的信息,并启用其他设计器作为IP定制的一部分以…

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘,信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy: pip install scrapy 注意:需要安装在python解释器相同的位置,例如&#xf…

RabbitMQ入门到实战——基础篇

初识RabbitMQ:高性能异步通讯组件 同步调用 异步调用 场景:1.对结果不关心时异步。订单状态-异步,查询-同步 2.影响性能。调用链超长,可改成异步 MQ技术对比 kafka日志收集 RabbitMQ整体架构 快速入门 交换机只负责路由消息&am…

Windows RPC运行时漏洞事后总结

2022年4月前后,Windows RPC运行时被曝出存在远程代码执行漏洞,当时曾引起很多人广泛关注。微软很快做出反应,发布补丁程序进行修补。这次事件中,Windows远程过程调用(RPC)运行时共出现三个关键漏洞&#xf…

Jasper report InputStream动态生产Logo

第一步,新建一个Parameter 新建一个对象Parameter,类型为java.io.InputStream 第二步,拖拽Image对象 拖拽Image对象,并调整长宽,Image下选择Expression $P{Logo_Blue} 第三步,把图片转换成stream rptHea…

JS逆向实战案例1——某房地产url动态生成

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、 反爬分析 url:aHR0cHM6Ly9uZXdob3VzZS4wNTU3ZmRjLmNvbQ 该站点项目url通过点击JS生成,project_id与生成后…

Android 输入系统介绍

文章目录 一、目的二、环境三、相关概念3.1 输入设备3.2 UEVENT机制3.3 JNI3.4 EPOLL机制3.5 INotify 四、详细设计4.1 结构图4.2 代码结构4.3 InputManagerService模块4.3.1 IMS服务入口4.3.2 IMS初始化4.3.3 IMS启动4.3.4 IMS消息监听 4.4 NativeInputManager模块4.4.1 nativ…

从0到1实战微服务架构之Nacos下载安装

目录 一、前言 二、Nacos概述 三、Nacos架构 3.1 Open API 3.2 Config Service 3.3 Naming Service 3.4 Nacos Core 3.5 Consistency Protocol 四、Nacos部署实践 4.1 Nacos下载 4.2 Nacos部署 五、总结 一、前言 Nacos是一个开源的、易于使用的、功能丰富的平台&a…

Java项目:02 基于ssm超市订单管理系统

项目介绍 基于ssm超市订单管理系统 环境:jdk1.8,mysql5.7,tomcat8.5,maven3.6 软件:IDEA 功能:超市后台管理系统,有订单管理,供应商管理,用户管理,密码修改&…

开源了,免费使用GPT4(Windows/Linux/Mac 一键启动脚本)

开源了,免费使用GPT4(Windows一键启动脚本) 大家好,我打算每日花1小时来写一篇文章,这一小时包括文章主题思考和实现,连续日更几天,看看能不能被官方推荐。(帮我点点赞哦&#xff5…

im6ull学习总结(三-4)freetype显示单个字体

矢量字体引入 使用点阵字库显示英文字母、汉字时,大小固定,如果放大缩小则会模糊甚至有锯齿出现,为了解决这个问题,引用矢量字体。 矢量字体形成分三步: 第1步 确定关键点, 第2步 使用数学曲线&#xff08…

Springboot的配置文件详解:从入门到精通,解读配置文件的奇妙世界

目录 1、前言 2、介绍 2.1 Springboot配置文件的作用 2.2 Springboot支持的配置文件类型 2.3 Springboot配置文件的加载顺序 3、YAML配置文件 3.1 YAML基本语法介绍 3.2 YAML中的基本数据类型 3.3 YAML中的复合数据类型 3.4 YAML中的配置属性 3.5 YAML中的多环境配置…

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本,修复了一个远程代码执行漏洞,攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行,从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before …

【从零开始学习微服务 | 第一篇】什么是微服务

目录 前言: 架构风格: 单体架构: 分布式架构: 微服务: 总结: 前言: 在当今快速发展的软件开发领域,构建大型应用程序已经成为一项巨大的挑战。传统的单体应用架构往往难以满足…

蓝桥杯练习题(三)

📑前言 本文主要是【算法】——蓝桥杯练习题(三)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

【Scala】——面向对象

1 Scala 包 1.1 包风格 Scala 有两种包的管理风格。 第一种 Java 的包管理风格相同,每个源文件一个包(包 名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如 com.atguigu.scala。另一种风…