Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel/ PHP:Ordina per alfabetico con i numeri in ordine

Ti viene posto il problema dell'ordinamento alfanumerico degli elementi o, in termini informatici, ordinamento naturale.

Esistono molti modi per ottenere un ordinamento naturale con MySQL semplice ma potresti anche prendere i risultati dal tuo helper Laravel in formato array e implementare di PHP natsort funzione invece .

Dai metodi che ho trovato sopra, ho derivato il modo migliore che probabilmente risolverebbe il tuo problema con il codice di esempio:

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

tuttavia non sono sicuro se l'helper si lamenterà di aver ricevuto una funzione MySQL invece di un nome di colonna diretto in orderBy funzione. Sto solo trascrivendo dai riferimenti che ho usato anche in combinazione con il tuo esempio:non posso garantirne l'efficacia.