0

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

我有一个由具有许多列的 php 表单填充的数据库:

姓名 | 最新图 | 以前的图1 | 以前的图2 | 上一个_figure3

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

例如,如果我们有:

姓名=李,最新图=80

我现在想用

name=Lee, latest_figure=85, 我想把原来的 80 的图移到 previous_figure1 列。

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

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

任何帮助将不胜感激。

4

2 回答 2

2

我认为你应该重写你的表。你应该有一个表:

姓名 | 图 | 时间戳

然后,您始终可以按名称和时间戳顺序获取数字,以便您知道哪个是最新的。这比总是创建一个新列要容易。

希望这可以帮助。

于 2013-04-24T14:20:08.423 回答
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;

希望能帮助到你 :)

于 2013-04-24T14:30:15.023 回答