nullなのに、0を返していたというのが事実なら、MySQL 3.23.55に問題が
あったのではないでしょうか?
nullの場合に、0としたいなら、coalesce関数を使うのが簡単だと思います。
select sum(coalesce(id,0)) from tbl1;
なお、coalesce関数は、主要なRDBMSで、同じ機能で実装されています。
> Date: Tue, 20 Jan 2009 10:17:07 +0900
> From: akiro@sibagaki.com
> Subject: [mysql 14716] sum関数のバージョンによる動作の違い
> To: ml@mysql.gr.jp
>
> いつもお世話になっています。
> mysqlを3.23から5.0に更新したときに、以下のトラブルに
> 見舞われました。
>
> create table tbl1(id int);
> insert into tbl1 values(null);
>
> としておいて、sumを取ると、
> select sum(id) from tbl1;
>
> 3.23.55では0が返され、5.0.45ではnullが返されます。
>
> これは周知のことなのかどうか、
> なにか別の違いから由来するものなのかどうか、
> また、nullを計算から除外(0として計算)するのに
> 簡単ないい方法があるのかどうか、
>
> 教えていただければ助かりま 后�実匸�� 実匸�� 潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘潘実匸�� 実匸�� 柴垣 akiro@sibagaki.com
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
>
>
【倖田來未特集】新曲からライブ映像、独占インタビューなど倖田來未満載 EXILEも倖田來未も何度でも聞ける!