首页 > 解决方案 > 比较来自同一 sqlite 列的两行

问题描述

如果列中的前一行与同一列中的下一行相等,我想用 1 更新 sqlite 表中的列。

示例:

first_column | second_column
----------------------------
      a      |       0
      a      |       1
      b      |       0
      c      |       0
      c      |       1

我的代码:

UPDATE FROM my_table
SET second_column=1
WHERE first_column=first_column-1

标签: sqlsqlite

解决方案


这个表有主键吗?如果没有,那么您可以创建一个表,如:

create table new (colPK INTEGER PRIMARY KEY AUTOINCREMENT, first_column, second_column);

然后在您的更新 SQL 中,您可以使用使用列 colPK 来引用行号。

UPDATE FROM my_table tab1
SET tab1.second_column=1
WHERE tab1.first_column = ( SELECT tab2.first_column FROM my_table tab2 WHERE tab2.colPK-1 = tab1.colPK)

推荐阅读