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就行 
問題解決
相關文章
相關標籤/搜索