我有一个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解决上述问题,还是必须使用游标?
答案 0 :(得分:2)
您可以使用简单的UPDATE
查询来解决此问题:
UPDATE PriceRange
SET MinPrice = MinPrice * 0.5, MaxPrice = MaxPrice * 0.5
WHERE TrdDate < '2016-01-03'