Jag vill lagra ipnr i samband med inlägg som görs. Alltså behöver jag en kolumn för att lagra dom. Är det Varchar som är bäst? Hur långt är ett ip-nr som längst?
Egentligen är det ett heltal, men Php gör om det till en människoläslig sträng (exempelvis 127.0.0.1 istället för 2130706433).
Hur du ska lagra det i databasen beror på vad du har för mål. Vill du att det ska ta så lite plats som möjligt så ska du lagra det som det heltal det egentligen är. Men annars blir det ju bara bökigt eftersom du inte får det serverat som heltal.
32 bitar. Ett tecken består av 8 bitar. En IP-adress tar alltså maximalt upp 4 tecken. Egentligen. Men om du lagrar den i en varchar så blir det ju text istället för ett tal och därmed maximalt 16 tecken (15 tecken för själva innehållet och ett tecken för att tala om hur långt det är).
För ögonblicket vill jag veta vad jag ska ha för maxvärde i min kolumn ipnr VARCHAR(?). Och eftersom den 32 tecken långa strängen md5(.) får plats i CHAR(32) så bör i alla rimligheters namn en 15 tecken lång sträng få plats i VARCHAR(15).
Att tecken och bitar inte är samma sak är förvisso sant, men SQL räknar inte bitar i strängar, den räknar tecken. :)
Jo, eftersom den måste ha ett avslutande tecken så den vet var den ska sluta läsa.
Du tänker rätt, men SQL är lite special. Har du funderat på varför du inte kan lagra mer än 255 tecken i en varchar? Jag menar, finns det ett strängavslutningstecken borde ju egentligen strängen kunna vara hur lång som helst då den håller på till avslutstecknet kommer.
Det är faktiskt så att SQL använder extra tecknet i varchar:en för att lagra strängens längd. Ett tecken, 8 bitar, kan ju inte lagra större värden än 255, so that's why.
254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25