JavaScript调用mysql查询bigint数据精度失真解决方案

最近我赶上了如题这个问题,后端用node.js写了一个读取mysql数据的接口,以前使用了好久都没发现什么问题,在查询订单表的订单ID时返回的值倒是错的node

正确的值是mysql

19102818002800002sql

可是js里返回的值倒是 数据库

19102818002800000后端

最后一位不必定是0,可是老是失真,因为订单ID我在后续的多个地方重复使用,致使后面全部用到这个值的地方全是错的。blog

发现结果有错之后,层层回溯才终于找到了这个错误源。接口

开始时没有想明白是哪里的问题,我尝试将这个数据改短一点后发现返回的值就对了,由此诊断出这里应该是数值过大致使的精度失真string

 

 看了下数据库结构 ID是bigint类型的变量

想来想去只能是把这个值查询出来之后马上赋值成string类型的,不修改接口,直接修改SQLselect

select *from order_info
修改为
select *,concat(id) ids from order_info
这里把id查询出来之后 将获取的值赋给 ids 这个变量,返回的josn中 咱们只用res_data.ids 替代id就行 
问题解决
相关文章
相关标签/搜索