[MySQL] 解决mysql导出excel数值型变成科学计数法问题

本文讨论了在使用SQL查询从MySQL数据库导出数据时,遇到的大数值在Excel中显示为科学计数法以及超过64位导致精度丢失的问题。通过在SQL语句中使用CONCAT函数拼接制表符' ',可以避免数值转换为科学计数法。同时,文章列举了一个具体的SQL查询示例,展示了如何结合工作类型进行条件判断,并在查询结果中包含员工信息、部门、门店等字段。
摘要由CSDN通过智能技术生成

当有数据导出需求的时候

我们直接写sql语句就能实现

但是有时候mysql中存储的数值太大了,在excel里面会变成科学计数法,如果超过了64位的话,那么还会丢失精度

需要在sql语句中concat 拼接一个\t

例如这样的sql里的

concat('\t',a.ding_userid),

select
  a.id,
  a.username,
  a.nickname,
  a.phone,
  a.create_time,
  d.name as store_name,
  a.status,
  a.work_types,
  CASE
    a.work_types
    WHEN "2,4" THEN '育婴师,保姆'
    WHEN "1,2,4" THEN '母婴护理师,育婴师,保姆'
    WHEN "3,11" THEN '催乳,产康'
    WHEN "1,2" THEN '母婴护理师,育婴师'
    WHEN "1,4" THEN '母婴护理师,保姆'
    WHEN "1,2,3,4" THEN '母婴护理师,育婴师,催乳,保姆'
    ELSE e.desc
  END AS many_work,
  a.grade,
  concat('\t',a.ding_userid),
  a.organization_id,
  concat('\t',a.snow_id),
  b.name,
  c.name
from
  mumway_admin a
  left join mumway_admin_department b on a.department_pid = b.id
  left join mumway_admin_department c on a.department_id = c.id
  left join mumway_store d on a.store_id = d.id
  left join mumway_masterneed e on e.id = a.work_types
where
  a.in_status != 3
order by
  a.id desc
limit
  5000;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值