如果该列中已存在数据,MySQL会将数据从一列移动到另一列

时间:2013-04-24 14:16:34

标签: php mysql

我已经查看了现有的答案,但似乎找不到合适的答案,所以:

我有一个填充了php表单的数据库,其中包含多个列:

名称| latest_figure | previous_figure1 | previous_figure2 | previous_figure3

我可以使用典型的mysql查询来更新表,但是如果数据已存在于该字段中,我需要在更新时向右移动数据。

例如,如果我们有:

name = Lee,latest_figure = 80

我现在想用

更新表格

name = Lee,latest_figure = 85,我希望80的原始数字移入previous_figure1列。

如果我们再次更新表格,并且name = Lee有一个latest_figure = 88,我希望85移动到previous_figure1和80移动到previous_figure2,依此类推。

保存数据的原因是出于图形原因显示进度/恶化等。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我认为你应该改写你的桌子。你应该有一个表:

名称|图|时间戳

然后您可以随时按名称和时间戳顺序获取数字,以便了解哪个是最新的。这比制作一个新专栏更容易。

希望这有帮助。

答案 1 :(得分:0)

如果设置了主键,您可以尝试使用ON DUPLICATE KEY。

INSERT INTO table (name, latest_figure) VALUES("Lee", 85) ON DUPLICATE KEY UPDATE previous_figure3 = previous_figure2, previous_figure2 = previous_figure1, previous_figure1 = latest_figure, latest_figure = 85;

希望有所帮助:)