简短答案-使用此查询:

SELECT id AS PrevID,CONCAT(

SUBSTRING(id,1,4),IF(CAST(SUBSTRING(id,5) AS UNSIGNED) <= 9,'0',''),CAST(SUBSTRING(id,5) AS UNSIGNED) + 1

) AS NextID

FROM (

-- since you allow strings such as AAAA20 and AAAA100 you can no longer use MAX

SELECT id

FROM t

ORDER BY SUBSTRING(id,4) DESC,5) AS UNSIGNED) DESC

LIMIT 1

) x

结果:

| PrevID | NextID |

| AAAA100 | AAAA101 |

| AAAA21 | AAAA22 |

| AAAA06 | AAAA07 |

只是为了好玩,我写了这个存储过程,它生成的数字看起来像AAAA00 AAAA99 AAAB00等:

CREATE FUNCTION NextID(PrevID VARCHAR(6))

RETURNS VARCHAR(6)

BEGIN

DECLARE s VARCHAR(4);

DECLARE i INT;

DECLARE j INT;

SET s = LEFT(PrevID,4);

SET s = REPLACE(s,'A','0');

SET s = REPLACE(s,'B','1');

SET s = REPLACE(s,'C','2');

SET s = REPLACE(s,'D','3');

SET s = REPLACE(s,'E','4');

SET s = REPLACE(s,'F','5');

SET s = REPLACE(s,'G','6');

SET s = REPLACE(s,'H','7');

SET s = REPLACE(s,'I','8');

SET s = REPLACE(s,'J','9');

SET s = REPLACE(s,'K','A');

SET s = REPLACE(s,'L','B');

SET s = REPLACE(s,'M','C');

SET s = REPLACE(s,'N','D');

SET s = REPLACE(s,'O','E');

SET s = REPLACE(s,'P','F');

SET s = REPLACE(s,'Q','G');

SET s = REPLACE(s,'R','H');

SET s = REPLACE(s,'S','I');

SET s = REPLACE(s,'T','J');

SET s = REPLACE(s,'U','K');

SET s = REPLACE(s,'V','L');

SET s = REPLACE(s,'W','M');

SET s = REPLACE(s,'X','N');

SET s = REPLACE(s,'Y','O');

SET s = REPLACE(s,'Z','P');

SET i = RIGHT(PrevID,2);

SET j = CONV(s,26,10);

SET i = i + 1;

IF i > 99 THEN

SET i = 0;

SET j = j + 1;

END IF;

SET s = CONV(j,10,26);

SET s = REPLACE(s,'Z');

SET s = REPLACE(s,'Y');

SET s = REPLACE(s,'X');

SET s = REPLACE(s,'W');

SET s = REPLACE(s,'V');

SET s = REPLACE(s,'U');

SET s = REPLACE(s,'T');

SET s = REPLACE(s,'S');

SET s = REPLACE(s,'R');

SET s = REPLACE(s,'Q');

SET s = REPLACE(s,'P');

SET s = REPLACE(s,'9','8','7','6','5','4','3','2','1','A');

RETURN CONCAT(LPAD(s,4,'A'),LPAD(i,2,'0'));

END

SELECT NextID('AAAA01') -- AAAA02

SELECT NextID('AAAA99') -- AAAB00

SELECT NextID('AAAB99') -- AAAC00

SELECT NextID('AAAZ99') -- AABA00

mysql文本自动递增_mysql-如何创建自动递增的字符串?相关推荐

  1. mysql的concat函数_MySQL中concat函数(连接字符串)

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制 ...

  2. mysql数据库创建表时通过设置什么属性可以设置字段编号自动增加_Mysql数据库创建表样例和解释...

    目录 照着下面样例创建表,设置自己的表名,字段和字段属性,基本都能满足需求啦: 参数解释: 1. AUTO_INCREMENT是设置该字段为自增列: 2. COMMENT '邮箱' :字段备注邮箱 3 ...

  3. mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本

    优点:热备份,不影响业务,增量备份,远程备份. 目的:自动打包备份到远程10.0.0.111备份服务器 前提: 1.安装xtrabackup yum install http://www.percon ...

  4. mysql维护计划 自动备份_MysQL windows 下自动备份,同时加入计划任务脚本

    实现的特性 可指定多个数据库 按照 年/月/日 的方式组织备份 可选的使用 WinRAR 压缩备份 使用计划任务实现定时备份 具体代码 备份 @echo off & setlocal ENAB ...

  5. mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...

    MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...

  6. mysql中create使用_mysql怎么创建表之create用法

    mysql的基础,创建一个表,但是高手和菜鸟就会有区别,合适的字段,字段描述,索引等细节很能体现一个程序员的水平,下面介绍用create创建表 在mysql数据库中不管我们是通过导入还是其它的工具创建 ...

  7. mysql数据库命令 单选_mysql中创建数据库命令是?_学小易找答案

    [单选题]NH4NO2分解得氮气和水,在23°C,95549.5 Pa 条件下,用排水集气法收集到57.5 cm3氮气.已知水的饱和蒸气压为2813.1 Pa,则干燥后氮气的体积为() [填空题]在相 ...

  8. mysql 存储过程建表_MySQL 存储过程创建表

    创建 CREATE PROCEDURE  Pro_IsExistTable(ableName varchar(100),out outputParam int) BEGIN set @csql=con ...

  9. mysql怎么建表_mysql如何创建表

    在mysql中,可以使用"CREATE TABLE"语句创建表:其语法格式为"CREATE TABLE ([表定义选项])[表选项][分区选项];",其中&qu ...

最新文章

  1. 单片机与微处理器和微型计算机的关系,微处理器、CPU、微处理机、微机、单片机它们之间有何区别?...
  2. 10分钟带你深入理解Transformer原理及实现
  3. python监控进程状态_python监控进程脚本
  4. 混沌工程将成标配?落地腾讯游戏后带来了哪些惊喜?丨Gdevops峰会
  5. 修改PATH导致fedora无法登录XWindow
  6. 微信多开txt_电脑版微信怎么双开、多开
  7. python之路_自定义属性、json及其他js补充
  8. 【Web】WEB项目初启动的那些糟心事
  9. Redis安装及配置(Linux)
  10. Redis cluster不能发布在与 springboot 相同的物理磁盘上,否则找不到集群。
  11. python语言标识符命名规则_python标识符命名规范是什么
  12. 反射相关知识及jOOR反射库介绍
  13. CentOS6.9 minimal版本安装图形化界面
  14. html打包的app软件报毒解析
  15. 导师对计算机学生论文的评语,导师对论文的学术评语
  16. 清除微信小程序button的默认样式
  17. PAT乙级题目索引(题目+解析+AC代码)
  18. MCAL知识点(十九):SENT驱动详细配置
  19. python实现四则运算_四则运算 Python实现(杨浩政,张兆敏)
  20. java的开发步骤_Java学习1:JAVA开发的步骤

热门文章

  1. Parse Too complex in xxxx.cpp --------source insight
  2. 10个Linux 系统性能监控命令行工具
  3. leetcode 39. Combination Sum | 39. 组合总和(Java)
  4. Python基础之:Python中的内部对象
  5. 都2020年了,这5个java IDE神器你还不知道?
  6. plotplay恢复默认设置_PotPlayer如何调整常用设置?PotPlayer调整常用设置的方法步骤...
  7. 局部钩子能防全局钩子吗_阿特的钩子成为队友的噩梦,毫无游戏体验感,小夏:当场哭了出来...
  8. Redis随笔Jedis、jedisCluster的使用
  9. ChubaoFS:一个面向大规模容器平台的分布式文件系统
  10. HipHop算法:利用微博互动关系挖掘社交圈