2019/01/22更新

[MySQL] ソートでnullを後ろにする

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
今日は、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、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSTwitterをフォローして貰えたら嬉しいです ^ ^

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。