U wordt geconfronteerd met het probleem van het alfanumeriek sorteren van items, of in computerwetenschappelijke termen, natuurlijk sorteren.
Er zijn veel manieren om een natuurlijke sortering te bereiken met pure MySQL
maar u kunt ook de resultaten van uw Laravel-helper in array-indeling opnemen en PHP's implementeren natsort
functie in plaats daarvan
.
Uit de methoden die ik hierboven heb gevonden, heb ik de beste manier afgeleid die uw probleem met de voorbeeldcode waarschijnlijk zou oplossen:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
ik weet echter niet zeker of de helper zal klagen over het ontvangen van een MySQL-functie in plaats van een rechte kolomnaam in de orderBy
functie. Ik transcribeer alleen van de referenties die ik ook in combinatie met uw voorbeeld heb gebruikt - ik kan de werkzaamheid niet garanderen.