生成MySQL流水号

  • 生成MySQL流水号
    • concat函数
      • concat的用法
    • 日期相关函数
      • now()获取当前日期
      • date_format(日期,指定格式) 格式化日期
    • lpad(需填充字符,填充后长度,填充字符串)

生成MySQL流水号

MysSQL生成指定编号

假如我们要生成 类似于 ABCD日期序号 比如
我的购物订单号:SP20211201001,并且以后四位自增,类似于这样的场景,该怎么实现呢?

首先我们分析序号,SP为固定字符,20211201为日期,后面为序号。那么我们要做的第一件事是拼接这三段字符。MySQL中的拼接函数还记得吗?

concat函数

concat的用法

比如

select concat('A', 'B', 'C');

日期相关函数

now()获取当前日期

获取当前日期,用法:

select now();

date_format(日期,指定格式) 格式化日期

格式化日期,用于指定查到的日期格式,比如我们流水号中的年月日,比如:

select date_format(now() , '%Y%m%d');

结果是:

lpad(需填充字符,填充后长度,填充字符串)

select lpad('A' , 4 , 0);

结果

那么现在结果很明显了,我们只需要拼接组合一下即可。

select concat('SP',date_format(now(),'%Y%m%d') , lpad('1' , 4 , 0));


如果需要实现后四位序号自增,该怎么实现?

我们可以先获取购物编号的后四位,+1。
然后再执行插入操作。

找出最大序号:

select concat('SP',date_format(now(),'%Y%m%d') , lpad(max(right(shoppingNum , 4)) + 1 , 4 , 0)) from mytest m 

然后再insert即可

insert  into mytest values(3,now(), (select concat('SP',date_format(now(),'%Y%m%d') , lpad(max(right(shoppingNum , 4)) + 1 , 4 , 0)) from mytest ));

MySQL生成自增的流水号相关推荐

  1. mysql 生成流水号 存储过程 订单编号

    用存储过程生成流水号是很常用的,这里以生成订单编号的流水号作为示例.(新的一天的流水号从1开始,如:今天的订单编号是CD2013010900014,下一个订单编号将是CD2013010900015:明 ...

  2. java生成自增流水号,并从每月第一天重新清零计数将业务流水号添加到数据库(原创)...

    如果你不想在数据库操作的话,这里有个方法可以一试,直接上代码: package com.seawin.common.util.convert;import java.text.DecimalForma ...

  3. MySQL 使用自增ID主键和UUID 作为主键的优劣比較具体过程(从百万到千万表记录測试)...

    測试缘由 一个开发同事做了一个框架.里面主键是uuid.我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿 ...

  4. Mysql生成连续时间段记录

    需求说明 基于某个起始日期值,比如'2021-9-1',生成其之后的30天数据,结果类似: 2021-09-02.2021-09-03.2021-09-04... 问题分析 该需要看似简单,但想不借助 ...

  5. mysql qt自增_mysql自增设置

    MySQL设置自增字段的相关语句: alter table album change ALBUM_ID ALBUM_ID bigint not null auto_increment; alter t ...

  6. molicode生成vue增删改查功能

    2019独角兽企业重金招聘Python工程师标准>>> molicode生成vue增删改查功能 背景描述 当前生成的页面主要应用于VUE前端UI框架 iview: https://i ...

  7. MySQL表的增删改查--你都知道吗?

    文章目录 CRUD 查询 修改 删除 数据库约束 数据库的设计 插入查询的数据 聚合查询 分组查询 联合查询/多表查询(重点) 内连接与外连接 子查询 合并查询 注释:在SQL中使用 --(空格) + ...

  8. MySQL设置自增初始值和步长

    我这里使用的为Navicat: (一般设置特殊的自增值和自增步长是为了:当数据出现错乱时,我们需要将备份的数据和线上的数据进行比对时使用.) 我们可以通过:SHOW VARIABLES LIKE 'a ...

  9. MySQL生成百万条数据超详细步骤

    本篇文章是关于MySQL生成百万条数据的全部过程,每一步都有具体的sql,并且每一步都有具体的注释,详细步骤如下: 1.创建数据库 CREATE DATABASE `test_bai` -- 创建数据 ...

最新文章

  1. 编写java程序的常见问题_Java程序的编写与执行、Java新手常见的问题解决
  2. DBUtils使用详解
  3. 网络摄像头 登录绕过 RCE漏洞 数据分析报告
  4. desc excel 公式_Excel小技巧之Power Pivot Generate函数、高级DAX函数与常用筛选器函数...
  5. .NET中书写XML的一种简单方法
  6. linux环境内核调试软件,Linux内核调试环境的搭建(使用qemu)
  7. 搭载「光线追踪」技术的次时代主机会有怎样的画面表现?
  8. list.action.php,doAction.php里代码可以这样写,大大减少了重复的代码
  9. w3cschool php 调整图片尺寸,PHP_php修改上传图片尺寸的方法,本文实例讲述了php修改上传图 - phpStudy...
  10. asp.net返回值当文件下载问题
  11. python里 t_python中的“.T”操作
  12. 过滤SQL关键字 防注入
  13. 阿里云何勉:如何定义团队的研发效能?
  14. 微型计算机原理及应用实验报告清零实验,北京科技大学微机原理及应用实验报告.docx...
  15. 解决ubuntu下微信不能发图片的问题。
  16. licecap免费+轻量+使用简单的录屏制作gif工具
  17. iOS UILable换行相关设置
  18. mysql时间段重叠_MySQL - 如何选择'DISTINCT'重叠时段(日期或数字范围)
  19. 地理坐标系、投影坐标系详解
  20. catia如何将曲面加厚变为实体_catia中如何将封闭曲面做成实体?

热门文章

  1. 从这里,开始屌丝的逆袭
  2. 鉴于B站的代码粘贴没有全选功能,up在这里放上软件小妹的脚本代码
  3. Dynamics CRM 中 Xrm.Page.getControl('name').getValue() 和 Xrm.Page.getAttribute('name').getValue() 的区别
  4. echarts pie饼图既显示内部又显示外部指示线
  5. hive-5(窗口函数)
  6. 使用iVMS-4200 存储录像数据时的设置
  7. RabbitMQ(6)-Spring AMQP,Spring集成RabbitMQ
  8. 全世界公认最美的经典爱情句子
  9. 新华三交换机密码重置
  10. 本地配置多个 Git 账户信息,满足不同的 Git 平台