この記事は公開されてから8年経過しています。現在とは内容が異なる場合がありますのでご注意ください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
MySQL の SUM 関数で集計するときに返り値が NULL になることないですか?NOT NULL になっていないカラムを集計するときに条件にヒットする行が 0 件だったときとかによくあると思います。
1 2 3 4 5 6 7 |
+----+-------+ | id | price | +----+-------+ | 1 | 1000 | +----+-------+ | 2 | 500 | +----+-------+ |
上記みたいなテーブルに次のような SQL を実行すると COUNT のところは 0 が、 SUM のところは NULL になると思います。
1 |
SELCT COUNT(`id`), SUM(`price`) FROM test WHERE `id` > 2; |
でここから本題ですが IFNULL 関数を使って次のようにすると NULL じゃなくて 0 が返ってくると思います。
1 |
SELECT COUNT(`id`), IFNULL(SUM(`price`), 0) FROM test WHERE `id` > 2 |
これだと返り値がNULLかどうかチェックすることなくそのまま値を表示させることができますね。