MySQL:使用相同列的值更新表列

时间:2017-04-03 07:09:24

标签: mysql

我有一个MySQL表:

PriceRange (MinPrice DOUBLE, MaxPrice DOUBLE, TrdDate DATE)

我希望对TrdDate小于特定日期的所有记录应用MinPrice和MaxPrice的乘法因子。例如,

更新前的表格:

(10, 12, 01-JAN-2016)
(12, 14, 02-JAN-2016)
(6, 7, 03-JAN-2016)

更新后的表格(对于TrdDate< 03-JAN-2016的所有记录都应用了乘数0.5):

(5, 6, 01-JAN-2016)
(6, 7, 02-JAN-2016)
(6, 7, 03-JAN-2016)

我知道子查询在这里不起作用,因为我无法更新我正在阅读的相同记录。

我可以使用JOIN解决上述问题,还是必须使用游标?

1 个答案:

答案 0 :(得分:2)

您可以使用简单的UPDATE查询来解决此问题:

UPDATE PriceRange 
SET MinPrice = MinPrice * 0.5, MaxPrice = MaxPrice * 0.5 
WHERE TrdDate < '2016-01-03'