• 18-01-2019, 18:38:58
    #1
    ORDER BY ile listeleme yapıyorum. İsimler mehmet-1, mehmet-2, mehmet-3.... mehmet-10
    mehmet-1
    mehmet-10
    mehmet-2
    .
    .
    .
    gibi sıralıyor. Bunu nasıl düzenli listelerim yardımcı olur musunuz?
  • 18-01-2019, 18:43:04
    #2
    Üyeliği durduruldu
    Merhaba,

    Örnek : SELECT * FROM user ORDER BY user_name ASC ( ASC ) yaparsanız eğer A'dan Z'ye doğru listeler, DESC Yaparsanız değer Z'den A'ya doğru listeme yapar.
  • 18-01-2019, 18:46:45
    #3
    Karenet adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Örnek : SELECT * FROM user ORDER BY user_name ASC ( ASC ) yaparsanız eğer A'dan Z'ye doğru listeler, DESC Yaparsanız değer Z'den A'ya doğru listeme yapar.
    Yok hocam ben ASC ile yaptım ama sonuç öyle. Hem rakam hem de yazı olunca karışıyor galiba :S

    yani mehmet-10 en sonda olacağı yere mehmet-1'den sonra geliyor listelemede :S
  • 18-01-2019, 18:51:27
    #4
    Üyeliği durduruldu
    Merhaba,
    SELECT * FROM user ORDER BY user_name ASC, dtarihi DESC Gibi işlemler sağlayabilirsiniz ama daha farklı sıralamak için de sayısal değerler ile işlem sağlayabilirsini sıra no gibi işlemler yapabilirsin.
  • 18-01-2019, 19:18:11
    #5
    user_name utf8 mi?
  • 18-01-2019, 19:22:43
    #6
    sort kodunu arastirmani tavsiye
  • 18-01-2019, 20:09:44
    #7
    Kurumsal Üye
    Eğer veriler sadece mehmet-1, mehmet-2 yani mehmet sabitse substr ve cast ile çözülebilir.

    SQL Kodu: https://hastebin.com/otequmamop.sql

    Sabit Değilse: https://hastebin.com/zolanomoga.php
  • 18-01-2019, 21:20:32
    #8
    Aradığınız şey "natural sorting" araştırabilirsiniz.

    http://www.mysqltutorial.org/mysql-natural-sorting/
    https://www.copterlabs.com/natural-sorting-in-mysql/

    SELECT isim
    FROM TABLO
    ORDER BY LENGTH(isim), isim

    şeklinde çözebilrisiniz.