• 01-12-2010, 12:58:51
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,
    videolar adlı tablom var, tabloda izlenme sütununda 105-110 izlenmeli videolar var ancak DESC 99 izlenme gösteriyor en fazla..
    SELECT * FROM videolar where onay='1' ORDER BY izlenme DESC yapıyorum,
    105 izlenmeli olan üste çıkmıyor üstte 99 izlenmeli videolar var. Nedir bu problem? phpMyAdmindede yaptım aynı.
  • 01-12-2010, 13:22:32
    #2
    İzlenme sütununuzun veri tipi Varchar mı INT mı?
  • 01-12-2010, 13:24:04
    #3
    Üyeliği durduruldu
    digiklan adlı üyeden alıntı: mesajı görüntüle
    İzlenme sütununuzun veri tipi Varchar mı INT mı?
    varchar hocam
  • 01-12-2010, 14:08:15
    #4
    ajhier adlı üyeden alıntı: mesajı görüntüle
    varchar hocam
    INT yap düzelir.
    Varchar stringdir sıralarken de stringe göre sıralıyordur. Database ondan sıralamada hata yapıyor olabilir.
    Anladığım kadarı ile Varchar sıralamayı karakter sayısının fazlalığından önce soldan sağa doğru harf gibi yapıyor.

    SELECT izlenme FROM videolar ORDER BY izlenme; 
    
    izlenme
    _________
    1
    10
    100
    1000
    10000
    ...
    2
    20
    200
    2000
    20000
    ...
    3
    30
    300
    3000
    30000
    ...
    ...
    ...
    ...
    9
    99
    999
    9999
    99999
    Şekinde sıraladığı için sendeki en sondaki değer 99 olarak görünüyor.
    O sütnunu INT yap sorun çözülür ya da sorguyu şöyle dene...

    SELECT izlenme FROM videolar ORDER BY izlenme+0;