アイテムをアルファベット順に並べ替える、またはコンピュータサイエンスの用語で言うと、自然並べ替えの問題が発生しています。
ストレートMySQLで自然ソートを実現する方法はたくさんあります
ただし、Laravelヘルパーからの結果を配列形式に変換して、PHPのを実装することもできます。 natsort
代わりに機能する
。
上記で見つけた方法から、サンプルコードで問題を解決する可能性のある最良の方法を導き出しました。
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
ただし、ヘルパーがorderBy
に直接の列名ではなくMySQL関数を受け取ることについて文句を言うかどうかはわかりません。 関数。私もあなたの例と組み合わせて使用した参考文献から転記しているだけです-私は有効性を保証することはできません。