如何删除表中未包含在列表中的所有整体

时间:2018-12-09 10:29:41

标签: sql sqlite

举一个简单的例子,我有一张桌子:

CREATE TABLE Persons (
   personID INTEGER,
   name TEXT
);

现在我有了一个名称列表(数组),例如[Peter, Nicolas, Alex]。我需要删除不在列表中的所有整体。这样做的最佳(性能明智)SQL查询是什么?

2 个答案:

答案 0 :(得分:1)

这会很好:

delete from persons
where name not in ('Peter', 'Nicolas', 'Alex')

答案 1 :(得分:0)

对于更通用的代码,请像下面这样使用左连接:

delete Persons
from Persons p
left join yourArray
  on p.name = yourArray.id
where yourArray.id is null