项目场景:
项目场景:生成编号:“指定字符”+年月日+三位流水号需求阐述:
已经写完了生成流水号的代码,但是之前的数据并没有此类编码,所以需要把数据库新建的编码字段进行刷新。 刷新数据的逻辑:根据指定字符“LSH”,数据的创建时间,三位流水号进行拼接。 例如:“LSH20210915001”分析:
执行了符合条件的查询语句,要刷新的数据库数量不算太大,一千多条数据,所以采用了excel拼装sql的方式做的。
解决方案:
导出符合条件的表的id和创建时间,然后把粘贴到excel表中的时分秒去掉,可以使用excel中的分列去掉时分秒。我这里是先粘贴到了idea里,用正则去掉的。具体做法:
Ctrl+r调出正则,输入\d+:\d+:\d+,点击replaceAll即可,再粘贴回到了excel里。
然后输入生成流水号的函数:
=TEXT(INT(D2),“YYYYMMDD”)&TEXT(COUNTIF(D$2:D2,D2),“000”)
如图所示
然后拼接sql,
如图所示,拼接函数为CONCATENATE
把生成的一千多条修改语句执行一下即可。
特别说明
如果数据量很大,建议创建一张临时表,连表执行一下sql语句。这样耗时短。
当然,也可以直接使用sql或者程序生成。