mysql导出长数字到excel避免显示为科学记数法 解决方法

数据库80

经常遇到MYSQL导出长数字或纯数字字符串(如身份证、卡券号、条码、流水号等)到csv或excel文件,用excel打开会显示为科学记数法,甚至后几位转为0。这是由Excel的特性决定的:Excel显示11位以上的数字时,会自动转化为科学计数法,如果长度大于15位,15位以后数字还会转成0。

网上搜到的解决办法是在该长数字前增加tab字符:
即:
CONCAT("\t",str)
其中 \t 为制表符(即键盘上的Tab键)的转义符

在实践中发现,这种方法导出的文件虽然显示为文本字符,但长度大于1,字符前面有一个看不见的空格(制表符),删除的是原始字符。

[En]

In practice, it is found that although the file exported by this method is displayed as a text character, the length is more than 1, there is an invisible space (tab) in front of the character, and deletion is the original character.

如果只是展示、打印倒无妨,但如果需要后续引用该字符串(如用VLOOKUP匹配),因为前面多了一个不可见的空格,长度也多了一位,则可能会出错。

后来想起excel输入长数字的可在数字前输入单引号"'"强制转为文本,在 mysql输出时也可以试试,测试可用:
即:
CONCAT("'",str)
或者
CONCAT("\'",str)
另外注意需保存为excel文件,即xls或xlsx文件,该数字即已强转为文本格式;如保存为csv,用excel打开则显示为可见单引号+数字形式,原因尚不明。

总结:

1.如果只需要导出展示、打印:可使用 CONCAT("\t",str)

2.如果需要后续处理,引用,最好使用 CONCAT("'",str)或者 CONCAT("\'",str),并导出为EXCEL文件。

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
数据库

9、IDEA回退Git版本

转载自 在工作中有时候会要求我们将以前提交的代码新开一个分支,而把之前提交的分支回退到以前某个版本 。 1、通过IDEA查看Git历史记录,复制当前版本号。 2、 记录当前版本号后,再复制你要回退的版...
数据库

浏览器书签插件配置

准备远程Git仓库(目前只支持Gitee) 登录后创建仓库(如没有账号请自行注册) 配置Token 进入设置页面配置私人令牌 新增一个令牌(权限)
数据库

MySQL实战45讲 17

17 | 如何正确地显示随机消息? 场景:从一个单词表中随机选出三个单词。 表的建表语句和初始数据的命令如下,在这个表里面插入了 10000 行记录: CREATE TABLE `words` ( `...
数据库

Windows 装机必备

404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com Original: https://ww...
数据库

Linux系统安装JDK

准备工作 1.去JDK的官网下载一个1.8的安装包 2.解压到linux系统 tar -zxvf jdk-8u311-linux-x64.tar.gz -C /download/compress/ 配...
数据库

2022-8-17 mysql 第三天

子查询 按照结果集的行列数不同,子查询可以分为以下几类: 标量子查询:结果集只有一行一列(单行子查询) 列子查询:结果集有一列多行 行子查询:结果集有一行多列 表子查询:结果集多行多列 -- 查询比小...
数据库

centos7安装python

以下操作均在root用户下进行(防止权限不够的问题) 一、查看centos自带的python(python -v) 因为centos自带的是python2.7的版本 二、安装自己想装的python版本...