微信云开发支持CSV导入数据库,数字形格式编号首位0丢失,咋办?
当CSV格式数据导入数据库时 , 纯数字格式的编号 , 当首位为0时 , 导入数据库后 , 生成的字段类型是数字型 , 自动舍弃了前面的0 , 导致编号有误 。 本文记录了几种非技术处理方式 , 曲线解决此问题 。 方法比较低级 , 高手绕行 , 有更好地方法望不吝赐教!
前几天进行小程序开发 , 结合新高考方案 , 增加了志愿填报工具“查询报考科目要求”功能 , 在将数据导入小程序后台云开发数据库过程中 , 再现了CSV格式数据导入过程中 , 纯数字格式的编号 , 导入后在数据库中生成的字段为数字型 , 自动舍弃了前面的0 。

文章图片
原始数据
这个问题不仅在云开发数据库中有 , 其它数据库导入一样存在 。
在开发小程序“2020年招生计划查询”过程中 , 也遇到过类似问题 , 网上查询 , 看到许多人有一样的困惑 , 查了很多资料 , 没发现简单有效的技术解决方案 。
编号数字长度固定的解决办法
上次遇到这个问题时 , 经过仔细观察 , 发现所需编号的数字长度一致 , 计划院校编号为4位 , 计划编号为8位 。
发现这个规律后 , 导入的数据就不处理了 , 直接在程序里进行补位:
【微信云开发支持CSV导入数据库,数字形格式编号首位0丢失,咋办?】比如正常编号应为4位数 , 但从数据库取到的数字是个位数 , 则强制转换成字符型 , 前面加3个0;
从数据库取到的编号数字是两位数 , 则强制转换成字符型后 , 前面加2个字符0;
以此类推 。

文章图片
代码示例
此种变通方法虽然解决了编号问题 , 但处理起来比较麻烦 , 每次用到编号时 , 都要处理 , 增加了代码量 , 也影响运行速度 。
不管编号是否固定 , 都能完美解决的简单处理方式
这次遇到的编号是不固定长度的 , 上次那个笨方法不灵了 。
想办法 , 还是从数据库端处理 , 让存入数据库的数据保持正确格式 。
憋了半天 , 突然发现 , 字符和数字混合的数据 , 导入数据库后即是字符型字段 , 可以保留原格式 。
灵光闪现:把原始数据中的编号 , 统一加上特殊字符 , 导入数据库后再把特殊字符处理掉 , 岂不是一劳永逸的方案吗!
说干就干 , 在EXCELL中 , 运用VBA , 自动将编号所在行的值添加特殊字符 , 如图:

文章图片
VBA程序
几行代码搞定 , 转码后导入数据库 , 生成的编号字段类型为字符型 , 如图:

文章图片
数据库导入结果
在云开发数据库端 , 可以写个云函数 , 批量去掉编号前的特殊字符 。
此小程序主要是自用 , 加上特殊字符也不伤大雅(主要是懒) , 索性这步也省啦!前端显示界面如图:

文章图片
手机端显示界面
这个方法比较低级 , 但简单有效 , 给广大程序猿们提个醒:
条条大道通罗马 , 不必非在技术一条路上走到黑 。
小程序效果请打开查看:

文章图片
小程序示例
- 史莱姆|淘宝微信屏蔽“ChatGPT”关键词
- 华为mate|把儿子送往美国的司马南和把技术带回国的马云:谁站在我们这边?
- 微信|微信关闭这2项功能,可节约大量手机内存
- 短视频|共享租车APP开发,达到用户租车所需-广州开发APP
- 张云雷人气高,被说不如娱乐圈的艺人,难道流量还不够?
- 微信|用户才是品牌创新的点
- 英国时尚品牌巴宝莉与腾讯合作,开发智能奢侈品专卖店,就在深圳
- 怎么实现电脑微信多开?这简单的三步直接搞定
- iPhone|刘强东、马云陆续“归位”,是否嗅到了什么“信号”?
- 微信新版变化巨大!这是要化身直播软件吗
