Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel/ PHP:Sortieren nach Alphabet mit Zahlen in der richtigen Reihenfolge

Sie werden mit dem Problem konfrontiert, Elemente alphanumerisch zu sortieren, oder in der Informatik ausgedrückt, natürliche Sortierung

Es gibt viele Möglichkeiten, eine natürliche Sortierung mit reinem MySQL zu erreichen Sie könnten aber auch die Ergebnisse Ihres Laravel-Helfers in ein Array-Format umwandeln und PHPs implementieren natsort funktionieren stattdessen .

Aus den oben gefundenen Methoden habe ich den besten Weg abgeleitet, der Ihr Problem wahrscheinlich mit dem Beispielcode lösen würde:

DB::table('test')->orderBy('LENGTH(title)', 'ASC')
    ->orderBy('title', 'ASC')
    ->get();

Ich bin mir jedoch nicht sicher, ob sich der Helfer darüber beschweren wird, eine MySQL-Funktion anstelle eines direkten Spaltennamens in orderBy zu erhalten Funktion. Ich transkribiere nur die Referenzen, die ich auch in Kombination mit Ihrem Beispiel verwendet habe - ich kann die Wirksamkeit nicht garantieren.