我有一个包含列
的表assoc
local_id, remote_id, cachedData
我可以成功运行看起来像
的SQLITE查询SELECT a1.local_id, a1.remote_id FROM assoc a1 LEFT JOIN ....
以便我识别符合我标准的assoc
表的某些行。
我想要做的是在这些行中将cachedData
设置为null
。
我该怎么做? Sqlite不支持带连接的UPDATE;您可以发出子查询,但我无法弄清楚如何使语法正确;这对我来说似乎不直观。
答案 0 :(得分:3)
UPDATE assoc SET cachedData = NULL
WHERE EXISTS (SELECT * FROM otherTable
WHERE otherTable.Col1 = assoc.Col1 AND otherTable.Col2 = assoc.Col1)
请注意,这不是特别有效。
答案 1 :(得分:0)
如果assoc
有一列作为主键(假设它是local_id
):
UPDATE assoc
SET cachedData=NULL
WHERE local_id IN (
SELECT local_id FROM assoc a1 LEFT JOIN ...
);
答案 2 :(得分:0)
啊哈,已经有了内置的rowid!
UPDATE assoc
SET cachedData=NULL
WHERE rowid IN (
SELECT rowid FROM assoc a1 LEFT JOIN ...
);