それは簡単に違いありませんが、私には遅すぎます.3列のテーブルがあります
- 製品
- 価格
- 週
例から:
商品価格 週
米 1,5 36
ピーナッツ 2,5 36
パン 0,5 36
米 1,2 37
ピーナッツ 2,6 37
パン 0,8 37
ある製品の価格をある週から別の週にコピーするように表を更新するにはどうすればよいですか。価格は同じままであるため、37 週から 38 週に価格をコピーしたいとします。
それは簡単に違いありませんが、私には遅すぎます.3列のテーブルがあります
例から:
商品価格 週
米 1,5 36
ピーナッツ 2,5 36
パン 0,5 36
米 1,2 37
ピーナッツ 2,6 37
パン 0,8 37
ある製品の価格をある週から別の週にコピーするように表を更新するにはどうすればよいですか。価格は同じままであるため、37 週から 38 週に価格をコピーしたいとします。
コピーしたい週の結果を取得して、次のようにテーブルに挿入できます。
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 つの製品エントリを強制する場合は、とにかくこれらの列に一意のインデックスまたは主キーを設定する必要があります。また、既存の製品/週の組み合わせがまだ存在しない場合、これは挿入として機能することに注意してください。そのため、製品/週の組み合わせがまだ存在するかどうかがわからない場合、これはこのデータを更新/追加する多用途のアプローチです。