我已经通过现有的答案,看着这个存在,但似乎无法找到正确的适合,所以:的MySQL将数据移动到另一列,如果数据已经在该列
我有一个数据库由具有多列的php表单填充:
name | latest_figure | previous_figure1 | previous_figure2 | previous_figure3
我可以使用典型的mysql查询来更新表,但如果数据已经存在于该字段中,我需要将数据更新到右侧进行更新。
例如,如果我们有:
名=李,latest_figure = 80
我现在想
名=李更新表,latest_figure = 85,我想原来80的数字移动到previous_figure1列中。
如果我们再次更新表,并且name = Lee有latest_figure = 88,我希望85移动到previous_figure1和80移动到previous_figure2,依此类推。
的原因的数据的保存为图形的原因,以显示进度/恶化等
任何帮助将不胜感激。
您使用的是不同的数据库结构TBH更加规范化,所以你可能有一个向tblUsers,tbldata的更好。 tblusers容器UserID,UserName。 tbldata包含自动增量ID列,用户ID,数据,所以如果你想为用户拉出数据,你只需做“SELECT * FROM tbldata WHERE UserID = $ userid ORDER BY ID DESC”,最新的优先。如果您想先做最早的变更,请将DESC更改为ASC。这种格式还允许您存储更大的数据集,而无需每次都添加列。查看数据标准化(用z表示阴阳拼写) – Dave 2013-04-24 14:21:24
尝试'UPDATE table previous_figure3 = previous_figure2,previous_figure2 = previous_figure1,previous_figure1 = latest_figure,latest_figure = 85 WHERE name ='Lee'' – Waygood 2013-04-24 14:22:49