我已经看过关于这个问题的现有答案,但似乎找不到合适的答案,所以:
我有一个数据库填充的php表单,有许多列:
name | 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,以此类推。
保存数据的原因是出于图形原因,以显示进度/恶化等。
我认为你应该重写你的表。您的表应该包含:
name |图|时间戳
那么你总是可以通过名字和时间戳来获得数字,这样你就知道哪个是最新的。这比总是创建一个新列要容易。
如果设置了主键,可以尝试使用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;
希望有帮助