3

MySQLデータベースにいくつかの列があり、それらを追加して別の列に保存したいと思います。

column1     column2     column3    subtotal
10          10          10         30

これを達成する方法はありますか?

4

4 に答える 4

4
update yourtable set subtotal = col1 + col2 + col3
于 2012-06-28T20:23:39.757 に答える
1

小計を更新するだけの場合は、その値を維持する必要があります。つまり、他の列の1つが更新されるたびに、コードも小計を更新することを忘れないでください。

この問題に対処するには、次の2つの方法があります。

  1. 行が更新されたときに起動するトリガーを作成します。このオプションにはデータベース「カンフー」が必要であり、トリガーが存在するテーブルを見ている他の人にはすぐにはわかりません。
  2. VIEW計算を行うを作成します

オプション2が最善のアプローチだと思います。

ビューをコーディングする方法は次のとおりです。

create view mytable_totalled as
select col1, col2, col3,  col1 + col2 + col3 as subtotal
from mytable

作成したビューは、テーブルと同じように使用できますが(いくつかの注意点があります)、ビューに対して任意の種類の選択を行うことができます。選択すると、新しい列がその場で計算されます

于 2012-06-28T20:38:32.747 に答える
0

これはどう?

UPDATE tableName SET subtotal = (column1 + column2 + column3)

アップデート1

テーブルに小計列が本当に必要ない場合は、次のようにクエリを使用してください

SELECT *, (column1 + column2 + column3) as subtotal
FROM tableName

デモ

于 2012-06-28T20:40:14.943 に答える
0

これが 1 回限りの取引であれば、次のような更新クエリを実行できます。

UPDATE MyTable set subtotal = (column1 + column2 + column3)

挿入時に計算する場合は、計算列を使用できます。

個人的には、データから簡単に導出できる情報がDBを肥大化させないように、計算が必要になるまで待つだけです。

于 2012-06-28T20:28:18.847 に答える