![](https://www.kamome-susume.com/wp-content/uploads/2020/07/2652730.jpg)
LaravelのorderByを使って、数字を小さい順に並び替えたいんだけど、うまくいかないなぁ…
こんな疑問を解決します。
あわせて読みたい
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
ココナラと似てるサイト比較11選!【2023年最新版】
この記事ではココナラに似てる副業サイトを11こ紹介しています。 今すぐスキルをお金にするなら、記事で気になったサービスに登録してみましょう。 本記事のゴール ココ…
あわせて読みたい
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
転職におすすめなサイト11選【リモート・フリーランスも対象】
転職におすすめなサイトが知りたいなぁ… 転職エージェントによって相性があります! この記事では、フリーランスの方でも利用できる転職におすすめなサイトを紹介しま…
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
今回のゴールは以下です。
- orderByを使って並び替えたいのに、桁数が異なる数字で並び替えたらうまくいかない
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/6030269ab6db0c6fd19020aacb4884e2.png)
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/6030269ab6db0c6fd19020aacb4884e2.png)
これを以下のように、数字が小さい順に並び替えるようにします。
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
結論、DBのカラムの型が数字型(intやbigIntなど)になっているか、もし文字列型(charやvarchar)になっている場合はCASTを使いましょう。
データを並び替えるときに以下のようにorderByを使ってかけます。
$books = Book::orderBy('book_code', 'asc')->get();
もし、book_codeのカラムの型が数字型の場合は、綺麗に昇順・降順ができます。
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
しかし、book_codeのカラムの型が文字列型の場合、以下のように数字順になってくれません。
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/6030269ab6db0c6fd19020aacb4884e2-1.png)
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/6030269ab6db0c6fd19020aacb4884e2-1.png)
なので、CASTを使い、文字列を数字型に変換してorderByする必要があります。
CASTはSQLの知識になります。
CAST()で値を特定の型に変換できるよ!ってやつです。
CASTを使って文字列型を数字型に変換すると、以下のように書けます。
// 昇順(1,2,3,...)
$books = Book::orderByRaw('CAST(book_code as SIGNED) ASC')->get();
// 降順(9,8,7,...)
$books = Book::orderByRaw('CAST(book_code as SIGNED) DESC')->get();
orderByRawは、生のSQLを実行させたい場合に用います。
orderBy(‘CAST()’)とはLaravelの都合上、書けません。
文字列を数値型に変換したことで、orderByが数字順に並べ替えることができます。
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
![](https://www.kamome-susume.com/wp-content/uploads/2021/12/78944d7f70eee9e5801aa24c9f12a7b2.png)
リンク
あわせて読みたい
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
ココナラと似てるサイト比較11選!【2023年最新版】
この記事ではココナラに似てる副業サイトを11こ紹介しています。 今すぐスキルをお金にするなら、記事で気になったサービスに登録してみましょう。 本記事のゴール ココ…
あわせて読みたい
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
転職におすすめなサイト11選【リモート・フリーランスも対象】
転職におすすめなサイトが知りたいなぁ… 転職エージェントによって相性があります! この記事では、フリーランスの方でも利用できる転職におすすめなサイトを紹介しま…
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
コメント