Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel/ PHP:Ordem por ordem alfabética com números em ordem


Você está enfrentando o problema de classificar itens em ordem alfanumérica ou, em termos de ciência da computação, classificação natural.

Existem muitas maneiras de obter uma classificação natural com MySQL direto mas você também pode levar os resultados do seu ajudante Laravel para o formato de matriz e implementar o do PHP natsort função em vez disso .

Dos métodos que encontrei acima, derivou a melhor maneira que provavelmente resolveria seu problema com o código de exemplo:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
    ->orderBy('title', 'ASC')
    ->get();

no entanto, não tenho certeza se o ajudante reclamará de receber uma função MySQL em vez de um nome de coluna direto no orderBy função. Estou apenas transcrevendo as referências que usei em combinação com o seu exemplo também - não posso garantir a eficácia.