我用不小心用 mysql 的int(11) 存了 手机号,数据都有问题,有办法恢复么?

我用不小心用mysql的int(11)存了用户的手机号,结果里面存的数据都是10位的,而且也不是单纯的被截断了一位,
比如手机号18345231102会被转成4294967295
有办法恢复么,急。。。。。
问题补充:
1.数据库的存的手机号是类似这样的
511129633
437709550
947221024
1544096837
2770221786
3052396450
985251741
2147791994
1663290693
3067028521
842826454
2382976437
1811997122
2128974539
694514931
1816715878
876431887
737421250
1107794384
847325325
2.我问了下运维,是开了binlog的,然后我跟他们要了一份。把里面所有的用户填手机号的sql的都找了出来,但是神奇的是sql里的手机号跟数据库里的是一样的,难道binlog里的sql是溢出之后的?
慕盖茨4494581
浏览 702回答 2
2回答

慕标5832272

沒辦法了,int的範圍是-2147483648~2147483647,而unsignedint也就是無符號整形的就是其兩倍0~4294967295。你的數據超出了,計算機就自動按maxinteger來算了。舉個簡單點的比喻——U盤塞滿了,再塞不進了,但是你當時沒發現,到後來發現的時候已經沒用了。除非你有當時存手機號的MYSQL腳本這類外界的記錄或者是LOG,想從本身恢復是不可能了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript