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来完成所有这些吗?这个表是否有唯一标识行的列?是的,产品和版本的组合主键(“产品”,“版本”)