soulmy adlı üyeden alıntı

int yapınca 123456 sayısı 1236 sayısından büyük olarak algılar. Senin dediğin varchar olunca öyle oluyor.

00007 şeklinde saklanması ise ZEROFILL seçersek öyle oluyor.


anlamadın, zerofill'den bahsetmiyorum. order by id dediğin zaman ve id alanını varchar 3 yaptığın zaman

100 sayısını 10'dan sonra algılayacak. ve sıralamada numeric işlem değil alfabetik işlem kullanılacak.

Ama int 3 yaptığın zaman 10 sayısını "010" görecek baştaki 0 onu 3 basamaklı bir sayı haline getiriyor. int değerinin görevi budur, zerofill gibi okur.

int değerinin içerisindeki parantez önemli mesela 5 yapıp time() ile kaydettiğimiz zaman problem yaratmaz çünkü time() fonksiyonunun verdiği çıktı belli rakam sayısından oluşur mesela 11 basamaklıdır.

ama int 2 atayıp, içerisine 1-90, ve 500; eklediğin zaman 500 değerini varsa 50lerden sonra algılayacak.

sayı kadar basamak oluşturulur diye kendin demişsin, int(5) değerindeki 7 sayısı 00007 olarak görülür yani aslında 5 basamaklı bir sayıdır, ve tüm sayılar 5 basamaklı okunup ona göre sıralama yapılır.

ne zerofill dedim sana ne de varchar

Ek Olarak: tekrarlıyorum, o sıfırları sen görmeyeceksin sistem onu kendisine yardımcı olması açısından öyle görecek, sende ona kaç tane rakam göreceğini söyleyeceksin. aynı mantık kullandığım windows sistemindede var.