mysql:10264
From: 柴垣 <柴垣 <akiro@xxxxxxxxxx>>
Date: Sun, 03 Oct 2004 13:28:07 +0900
Subject: [mysql 10264] Re: 複数のレコードを参照した条件で一つのレコードを書き換える
とりあえずは自己レスです。 あまりいい方法は思い浮かばなかったのですが、 フィールドに、レコードの全体を反映するフィールドを追加して 当面は解決するつもりです。 table0 のフィールドを、field0= 'MyID'、field1='MyValue'、 field2='TotalValue' とします。 TotalValue には、MyValueフィールドの全レコードの和を常に 入れておくことにします。(実際には、値があるのは一つですが) MyID=n に MyValue=nnn の値をセットするときは update table0 set MyValue=if(MyID=n,nnn,0), TotalValue=nnn where TotalValue=0; リセットするときは、 update table0 set MyValue=0, TotalValue=0 where TotalValue=nnn; とします。 他のレコードを参照して、当のレコードを書き換えるには それほど一般性のある解法ではなく、またこれだけの動作なら 一つだけのレコードで実現させることもできると思うのですが ひとまず現時点の報告です。 > 排他処理的な動作をさせたい場面の update 文で > > 「すべてのレコードの、指定したフィールドが 0 の場合のみ > そのレコードの指定したフィールドに値を入れる」 > > といった処理をさせたいのですが、そんなSQL 文はあるので > しょうか。MySQL は、mysql-3.23.55-win を使用しています。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 柴垣 顕郎 akiro@xxxxxxxxxx _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
10262 2004-10-01 19:56 [柴垣 <akiro@xxxxxxxx] 複数のレコードを参照した条件で一つのレコードを書き換える -> 10264 2004-10-03 13:28 ┗[柴垣 <akiro@xxxxxxxx]