0

这一定很容易,但对我来说太晚了,我有一张有 3 列的桌子

  1. 产品
  2. 价格
  3. 星期

例如:

产品价格 周
大米 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 列的组合上没有主键或唯一索引,这只会添加另一行。如果您想每周强制执行一个产品条目,那么无论如何您都应该在这些列上有一个唯一索引或主键。另请注意,如果现有产品/周组合尚不存在,这将充当插入,因此这是一种更新/添加此数据的通用方法,不知道该产品/周组合是否存在。

于 2013-11-11T19:07:41.740 回答