更新作为列表列表的表中的特定行

时间:2015-07-03 08:09:57

标签: mysql sql list

我有一个包含列表的表。第一列是列表的唯一索引,第二列包含列表中的顺序(1,2,3等),然后还有其他几列。其中一列包含列表分隔符(&#34 ;;"),但显然只在列表的前N-1行中。也就是说,只有一行(item)的列表没有分隔符,2行的列表只在行1中有分隔符,等等。任何列表中的最后一行(N)在相应列中都没有分隔符

从任何行中没有分隔符的初始状态开始,用分隔符正确填写的语句是什么?

样本数据(仅相关列):

1 1 ; 
1 2 <empty>
2 1 <empty>
3 1 ;
3 2 ;
3 3 <empty>

etc.

1 个答案:

答案 0 :(得分:2)

如果列表中不允许重复,则以下解决方案应该有效:

  UPDATE listtable t1 
  SET t1.column3 = ';'
  WHERE t1.column2 < ( SELECT MAX(t2.column2) 
                       FROM listtable t2 
                       WHERE t1.column1 = t2.column1 )