0

それは簡単に違いありませんが、私には遅すぎます.3列のテーブルがあります

  1. 製品
  2. 価格

例から:

商品価格 週
米 1,5 36
ピーナッツ 2,5 36
パン 0,5 36
米 1,2 37
ピーナッツ 2,6 37
パン 0,8 37

ある製品の価格をある週から別の週にコピーするように表を更新するにはどうすればよいですか。価格は同じままであるため、37 週から 38 週に価格をコピーしたいとします。

4

1 に答える 1

0

コピーしたい週の結果を取得して、次のようにテーブルに挿入できます。

INSERT INTO table (product, price, week)
SELECT product, price, '[NEW WEEK VALUE]'
FROM table WHERE week = '[OLD WEEK VALUE]'

週の値を引用符で囲むかどうかは、列が整数かテキスト型かによって異なります。

既存の行を他の値で更新するには、次のように REPLACE 構文を使用できます。

REPLACE INTO table (product, price, week)
SELECT product, price, '[NEW WEEK VALUE]'
FROM table WHERE week = '[OLD WEEK VALUE]'

ただし、product 列と week 列の組み合わせに主キーまたは一意のインデックスがない場合は、単に別の行が追加されることに注意してください。週に 1 つの製品エントリを強制する場合は、とにかくこれらの列に一意のインデックスまたは主キーを設定する必要があります。また、既存の製品/週の組み合わせがまだ存在しない場合、これは挿入として機能することに注意してください。そのため、製品/週の組み合わせがまだ存在するかどうかがわからない場合、これはこのデータを更新/追加する多用途のアプローチです。

于 2013-11-11T19:07:41.740 に答える