wahsaga: Verständnisfrage: was bedeutet smallint(5)?

Beitrag lesen

hi,

Aha, dann beißt sich diese Aussage aber mit http://dev.mysql.com/doc/mysql/en/numeric-type-overview.html (oder auf deutsch: http://dev.mysql.com/doc/mysql/de/column-types.html)

"M indicates the maximum display width."

Der folgende Satz relativiert dies aber schon wieder:

"The maximum legal display width is 255. Display width is unrelated to the storage size or range of values a type can contain, as described in Section 11.2, “Numeric Types”.

Und dort wiederum steht
"This optional display width specification is used to left-pad the display of values having a width less than the width specified for the column.
The display width does not constrain the range of values that can be stored in the column, nor the number of digits that are displayed for values having a width exceeding that specified for the column."

Das "Maximum" in Bezug auf die display width würde ich also wie folgt interpretieren:

int(5) gibt an, dass du auf maximal fünf Stellen mit Spaces (bzw. Nullen bei zerofill) auffüllen willst. "Längere" Feldinhalte berührt dies jedoch nicht.

Bei Datensätzen mit den Werten 123, 4567 und 123456789 in einer INT(5)-Spalte mit dem Attribut zerofill würdest du also folgende Werte zurückgeliefert bekommen:

00123
04567
123456789

Das Auffüllen mit führenden Nullen wird also bis zum "Maximum" von fünf Stellen insgesamt gemacht.
Nur, weil der letzte Wert neun Stellen hat, werden deshalb nicht alle anderen Werte ebenfalls auf neun Stellen aufgefüllt.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }