2012-06-23 72 views
2

我使用INT(20)列創建表格。每當我提交一個大於10個字符的值時,該值就會被加擾。任何10個或更少的字符作爲值存儲正確,我不知道爲什麼。我已將長度設置爲20,但似乎忽略了這一點。INT列值超過10個字符

[字符長度10]
例:(123456789--- 變得 ---> 2147483647)

[字符長度< = 10]
例:(1234567890 --- 遺體 ---> 1234567890)

我想我可能需要以某種方式改變表的結構,但迄今爲止沒有任何工作。我會很感激任何有用的智慧語言,讓我的數字值超過10,正確存儲在我的表格中。

謝謝。

注意:我正在使用MySQL,PhpMyAdmin,Drupal

回答

1

INT(20)只是意味着20個號碼可以被顯示。如果數字較大,則作爲切斷點;如果指定了ZEROFILL,則作爲切斷點。

由於可以存儲的最大整數是2 -1(假設爲UNSIGNED),並且您超出該值,您將得到「加擾」數字。

爲了解決此問題,使用BIGINT,它允許你去到2 -1,或FLOAT在一些精密的成本獲得了堆積如山的數字的潛力。

+0

我真的很感謝你的幫助! =) – SFox

0

實際上,您應該使用DECIMAL而不是INT或BIGINT。這是SQL中的數據類型,用於保存具有指定精度的數字,這是您似乎擁有的數字。