sql >> Database >  >> RDS >> Mysql

Laravel/ PHP:Sorteer op alfabetisch met getallen in volgorde

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.



  1. Willekeurige waarde voor kolom DATETIME

  2. hoe de volgorde van LEFT JOIN in SQL-query te sorteren?

  3. Is er een prestatieverschil tussen HAVING op alias, versus het niet gebruiken van HAVING?

  4. JSON_QUERY() Functie in Oracle