我用不小心用mysql的int(11)存了用户的手机号,结果里面存的数据都是10位的,而且也不是单纯的被截断了一位,比如手机号18345231102会被转成4294967295有办法恢复么,急。。。。。问题补充:1.数据库的存的手机号是类似这样的511129633437709550947221024154409683727702217863052396450985251741214779199416632906933067028521842826454238297643718119971222128974539694514931181671587887643188773742125011077943848473253252.我问了下运维,是开了binlog的,然后我跟他们要了一份。把里面所有的用户填手机号的sql的都找了出来,但是神奇的是sql里的手机号跟数据库里的是一样的,难道binlog里的sql是溢出之后的?
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
沒辦法了,int的範圍是-2147483648~2147483647,而unsignedint也就是無符號整形的就是其兩倍0~4294967295。你的數據超出了,計算機就自動按maxinteger來算了。舉個簡單點的比喻——U盤塞滿了,再塞不進了,但是你當時沒發現,到後來發現的時候已經沒用了。除非你有當時存手機號的MYSQL腳本這類外界的記錄或者是LOG,想從本身恢復是不可能了。
添加回答
举报
0/150
提交
取消
