Sqlite 检查后更新列

Sqlite 检查后更新列,sqlite,Sqlite,我有一个表,其中列为产品,版本。我添加了一个新列valid,它是BOOLEAN,我想要的是将TRUE添加到具有最大版本的产品中,将FALSE添加到其余的产品中。例如: 之前 product1 - 1 product1 - 2 product1 - 3 之后 product1 - 1 - 0 product1 - 2 - 0 product1 - 3 - 1 我可以用java编写语句来实现这一点,但我更喜欢从SQLite控制台添加列。我可以用SQLite实现这一点吗?您希望在没有其他行具有相

我有一个表,其中列为
产品
版本
。我添加了一个新列
valid
,它是
BOOLEAN
,我想要的是将TRUE添加到具有最大版本的产品中,将FALSE添加到其余的产品中。例如:

之前

product1 - 1
product1 - 2
product1 - 3
之后

product1 - 1 - 0
product1 - 2 - 0 
product1 - 3 - 1

我可以用java编写语句来实现这一点,但我更喜欢从SQLite控制台添加列。我可以用SQLite实现这一点吗?

您希望在没有其他行具有相同产品和更大版本的行中获得
1

UPDATE MyLittleTable
SET valid = NOT EXISTS (SELECT *
                        FROM MyLittleTable AS T2
                        WHERE T2.product = MyLittleTable.product
                          AND T2.version > MyLittleTable.version);

您可以只执行相同的SQL语句。到底是什么问题?使用
PreparedStatement
我会将所有记录存储到ArrayList中,然后使用循环等查找最大版本,然后将它们插入到新表或更新现有的表。我可以用SQLite代替java来完成所有这些吗?这个表是否有唯一标识行的列?是的,产品和版本的组合
主键(“产品”,“版本”)