通过比较所有列来更新数据是否为空的列

时间:2018-10-25 06:31:33

标签: mysql null

我遇到了一种情况,我想比较为空的列,并将数据更新到第一次出现null的列,例如:

 id  institute_name_1  institute_name_2 institute_name_3 institute_name_4 
   1     xyz                  null          null             null            
   2     abc                  pqr           null             null        

现在,如果我想更新添加用户1的机构名称,那么它应该在update列上为institute_name_2,如果ID为2的用户想要添加机构,则应该在{{ 1}}

1 个答案:

答案 0 :(得分:0)

这是非常糟糕的表设计。这是使用相同数据的表的建议版本:

user_id | institute_name
1       | xyz
2       | abc
2       | pqr

也就是说,将用户和机构之间的每个关系存储在单独的记录中。然后,添加或删除关系直接映射到添加或删除记录。

如果您确实需要跟踪哪个用户/研究所输入是第一个,第二个等等,那么您应该为此专门设置一列。也许time_inserted日期时间列会有意义:

user_id | institute_name | time_inserted
1       | xyz            | 2018-10-25 12:00:03
2       | abc            | 2018-10-25 13:55:23
2       | pqr            | 2018-10-25 14:02:00

现在可以使用提供排序的time_inserted列来确定用户#2的“第二”研究所。