更新表中的多个行

时间:2013-11-11 19:04:04

标签: php

这一定很容易,但对我来说只是为了迟到,我有一个有3列的表

  1. 产品
  2. 价格
  3. 例如:

    产品价格周
    大米1,5 36
    花生2,5 36
    面包0,5 36
    大米1,2 37
    花生2,6 37
    面包0,8 37

    如何更新表格,将一个产品的价格从一周复制到另一个星期。 假设我想将价格从第37周复制到第38周,因为它们保持不变。

1 个答案:

答案 0 :(得分: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列的组合,您没有主键或唯一索引,这只会添加另一行。如果您想每周强制执行一个产品条目,那么您希望在这些列上拥有唯一索引或主键。另请注意,如果现有的产品/周组合尚不存在,这将作为插入,因此这是一种更新/添加此数据的通用方法,因为不知道该产品/周组合是否存在。