我需要用这个逻辑更新一个表:查找过滤字段='某个值'的行,让我们称之为“选定行”,然后更新“选定行”本身以及订单字段>的行选定的行顺序字段:
例如,我想增加所有价格值>“选定行”价格值和相同 id_product 的价格行,其中“选定行”的距离值 = 到 7 所以选定行是 *,更新行应该是 ^
我的表 编号 | 价格 | id_product | 距离 1 | 10 | 1 | 1 2 | 04 | 1 | 2 3 | 02 | 1 | 12 4 | 44 | 1 | 2 ^ 5 | 09 | 1 | 1 6 | 13 | 1 | 7 * ^ 7 | 15 | 1 | 8 ^ 8 | 09 | 2 | 5 9 | 12 | 2 | 8 10 | 17 | 2 | 1 11 | 32 | 2 | 13 12 | 22 | 2 | 2
数据库是postgres 9.2。
谢谢
是我的错,
设置价格 = x.price + 2错了,更新到
设置价格 = tbla.price + 2.
以这种方式调整过滤器:
((tbla.price > x.price) OR (x.id = tbla.id AND tbla.price = x.price)) AND x.id_product = tbla.id_product
查询现在有效:
更新 mytable tbla 设置价格 = tbla.price + 2 从 ( SELECT price, id, id_product FROM mytable WHERE distance = 7) x WHERE ((tbla.price > x.price) OR (x.id = tbla.id AND tbla.price = x.price)) AND x.id_product = tbla.id_product
谢谢