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