Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel/ PHP :Trier par ordre alphabétique avec des numéros dans l'ordre

On vous pose le problème du tri alphanumérique des éléments, ou en termes informatiques, du tri naturel.

Il existe de nombreuses façons de réaliser un tri naturel avec MySQL direct mais vous pouvez également prendre les résultats de votre assistant Laravel au format tableau et implémenter PHP natsort fonction à la place .

À partir des méthodes que j'ai trouvées ci-dessus, j'ai dérivé la meilleure façon de résoudre votre problème avec l'exemple de code :

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

cependant, je ne sais pas si l'assistant se plaindra de recevoir une fonction MySQL au lieu d'un nom de colonne direct dans le orderBy fonction. Je ne fais que transcrire à partir des références que j'ai utilisées en combinaison avec votre exemple également - je ne peux pas garantir l'efficacité.