如何在一列接收数据时更新列的日期

时间:2017-08-13 11:53:47

标签: mysql sql

我对sql有点新意,无法得到这个。 如何在一列接收到数据并且与某个值匹配时更新列的日期,那么日期应该在列中自动更新

这是我的表格如何

Id level level_4_Updated level_5_updated level_6_updated
1....4.............Null........................Null.......................Null
2....5.............Null........................Null.......................Null
3....6.............Null........................Null.......................Null
4....5.............Null........................Null.......................Null
5....4.............Null........................Null.......................Null

如果actual_level为4,那么日期应该在level_4_updated中更新,如果level为5,那么当级别获取数据时,日期应该在level_5_updated中自动更新。并且每行的更新应该是独立的。如果我们更新任何行,它不应该影响其他行。我可以通过使用触发器获得此查询。

提前谢谢

2 个答案:

答案 0 :(得分:1)

这是你在找什么?

update t
    set level_4_Updated = (case when level = 4 then now() else level_4_Updated end),
        level_5_Updated = (case when level = 5 then now() else level_5_Updated end),
        level_6_Updated = (case when level = 6 then now() else level_6_Updated end)
    where id = @id;

答案 1 :(得分:0)

首先,我认为英语不是你的第一语言!

当您说“日期”时,我认为您的意思是数据或数据输入。

所以你要做的是将数据条目应用到名为“updated-level_i”的列中,其中名为“level”的列保存值i。

您只需编写一个stored procedure来遍历表中的每一行数据,在“level”列中获取数据条目,根据此值分配适当的更新列,然后执行更新这一栏。