[MySQL] ソートでnullを後ろにする
こんにちは、@yoheiMuneです。
今日は、MySQLのソートで、null値を後ろにする方法をブログに書きたいと思います。
最後になりますが本ブログでは、Swift、PHP、フロントエンド、Python、サーバー、インフラ、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
今日は、MySQLのソートで、null値を後ろにする方法をブログに書きたいと思います。
注意点
今回の内容は、MySQL特有の内容で、他のデータベース製品では対応方法が異なります。デフォルト挙動では、ソートでnullが先に来る
下記のように、nullについて何も考慮せずorder byを指定すると、nullが先に表示されます。
mysql> SELECT id, display_order
-> FROM items
-> ORDER BY display_order;
+----+---------------+
| id | display_order |
+----+---------------+
| 1 | NULL |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
+----+---------------+
これに対して、nullを後ろにしたい場合にどうするのか、というのがこのブログの内容です。ソートでnull値は後ろにする
nullを後ろにするにはIS NULL ASCという指定を利用します。
mysql> SELECT id, display_order
-> FROM items
-> ORDER BY display_order IS NULL ASC, display_order;
+----+---------------+
| id | display_order |
+----+---------------+
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 1 | NULL |
+----+---------------+
ここではdisplay_order IS NULL ASCと指定することで、nullが後ろになりました。最後に
知っておくと開発効率がちょっとアップするTipsかなと思います。こういう引き出しの多さ大切!最後になりますが本ブログでは、Swift、PHP、フロントエンド、Python、サーバー、インフラ、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!






