检查后更新列

时间:2016-06-22 10:34:48

标签: sqlite

我有一个包含product列,version的表格。我添加了一个新的validBOOLEAN,我想要的是为具有最大版本的产品添加TRUE,为其余版本添加FALSE。例如:

之前

product1 - 1
product1 - 2
product1 - 3

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

我可以使用java编写预处理语句,但我更喜欢从SQLite控制台添加列。我可以用SQLite做到吗?

1 个答案:

答案 0 :(得分:1)

您希望1准确地获取那些没有其他行具有相同产品且存在更大版本的行:

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