mysql:14718
From: Hideki SUNADA <Hideki SUNADA <hideki@xxxxxxxxxx>>
Date: Tue, 20 Jan 2009 10:44:41 +0900
Subject: [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@xxxxxxxxxx> 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@xxxxxxxxxx > > _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ >
14716 2009-01-20 10:17 [柴垣 <akiro@xxxxxxxx] sum関数のバージョンによる動作の違い @ 14717 2009-01-20 10:25 ┣[chuuken kenkou <ken_] -> 14718 2009-01-20 10:44 ┣[Hideki SUNADA <hidek] 14719 2009-01-20 12:31 ┗[HIRATSUKA Sadao <hir] 14720 2009-01-20 13:28 ┗[柴垣 <akiro@xxxxxxxx]