2009年1月20日

[mysql 14718] Re: sum関数のバージョンによる動作の違い

これじゃだめですか?

select sum(if(id is null, 0, id)) from tbl1;

idがnullの場合はゼロを返し、それ以外はidの値を返して
それをSumします。


On Tue, 20 Jan 2009 10:17:07 +0900
柴垣 <akiro@xxxxx> wrote:

>  いつもお世話になっています。
>  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@xxxxx
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>


投稿者 xml-rpc : 2009年1月20日 10:44
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/81208
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。