sql >> Databáze >  >> RDS >> Mysql

Laravel/ PHP:Seřadit podle abecedy s čísly v pořadí

Jste postaveni před problém řazení položek alfanumericky, nebo z hlediska informatiky přirozené třídění.

Existuje mnoho způsobů, jak dosáhnout přirozeného řazení pomocí přímého MySQL ale můžete také převzít výsledky z vašeho pomocníka Laravel do formátu pole a implementovat PHP natsort místo toho .

Z metod, které jsem našel výše, jsem odvodil nejlepší způsob, který by pravděpodobně vyřešil váš problém s ukázkovým kódem:

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

nejsem si však jistý, zda si pomocník bude stěžovat na přijetí funkce MySQL namísto přímého názvu sloupce do orderBy funkce. Přepisuji pouze z odkazů, které jsem použil v kombinaci s vaším příkladem - nemohu zaručit účinnost.



  1. Nelze vytvořit instanci Multi-AZ Aurora RDS

  2. TO_CHAR(datetime) Funkce v Oracle

  3. Hibernate nemohl načíst SequenceInformation z databáze

  4. Vkládání dat do sql tabulky v Eclipse EE