3
我剛剛創建了一個角色表,並且我定義了role_id tinyint(1),儘管我能夠存儲99,200最大爲255作爲unsigned的tinyint限制。那麼在數據類型中傳遞這個大小的含義是什麼?關於mysql表字段的大小
當閱讀的很少,它是關於顯示寬度,但是當我在我的PHP頁面上獲取結果時,它顯示爲它們存儲在表中。
任何導師,你能指導我清除它嗎?
我剛剛創建了一個角色表,並且我定義了role_id tinyint(1),儘管我能夠存儲99,200最大爲255作爲unsigned的tinyint限制。那麼在數據類型中傳遞這個大小的含義是什麼?關於mysql表字段的大小
當閱讀的很少,它是關於顯示寬度,但是當我在我的PHP頁面上獲取結果時,它顯示爲它們存儲在表中。
任何導師,你能指導我清除它嗎?
從10.1.1. Numeric Type Overview:
M indicates the maximum display width for integer types. The maximum legal
display width is 255. Display width is unrelated to the range of values a type
can contain [...].
所以tinyint(M)
,或者你的情況tinyint(1)
,意味着當由MySQL正在顯示存儲在role_id
任何值將被切碎爲一個字節的長度。類似地,tinyint(3)
將會用一個數字整數來填充兩個空格。您也可以使用tinyint(3) zerofill
來代替0
,但它的副作用是使您的tinyint
無符號。
但是,無論你如何指定tinyint
就是他們將在內部存儲爲範圍[-128,127]
一個整數(簽字)或[0,255]
(無符號),所以這是查詢數據庫時,PHP將收到價值。
您可以使用mysql_field_len和substr來限制顯示寬度,類似於PHP。
向您的答案致敬。從頭到腳,完全消化。非常感謝。 – 2012-02-07 11:03:55