sql - 比较来自同一 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
解决方案
这个表有主键吗?如果没有,那么您可以创建一个表,如:
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)
推荐阅读
- spring-restdocs - 如何在 Spring Rest Docs 生成的 HTML 文档中包含应用程序版本号?
- mysql - 计算已经过去了多少个工作日
- mysql - 返回第二列不唯一的 ID。
- paypal - 贝宝支付沙盒账户问题,状态为 UNCLAIMED
- r - 从谷歌驱动器下载电子表格时出现问题的 GoogleAuthR 包
- regex - 什么是正则表达式来匹配正文中的两组单词
- php - 使用 Laravel Nova 进行图像干预
- codeigniter - codeigniter如何存储实时数据
- sql - 根据另一列的值设置列值
- python - Curve_fit 错误 - IndexError:只有整数、切片 (`:`)、省略号 (`...`)、numpy.newaxis (`None`) 和整数或布尔数组是有效索引