检查SQL数据库列中是否存在项列表的最佳方法是什么?

bra*_*ter 6 sql list exists

如果我有一个项目列表,请说

apples
pairs
pomegranites
Run Code Online (Sandbox Code Playgroud)

我想识别SQL DB表中'fruit'列中不存在的任何内容.

  • 快速性能是主要关注点.
  • 需要在不同的SQL实现上可移植.
  • 输入列表可以包含任意数量的条目.

我可以想到几种方法,我想把它扔出去看看你们的想法.

Klu*_*uge 12

由于您选择的水果列表可以任意长,我建议如下:

create table FruitList (FruitName char(30))
insert into FruitList values ('apples'), ('pears'), ('oranges')

select * from FruitList left outer join AllFruits on AllFruits.fruit = FruitList.FruitName
where AllFruits.fruit is null
Run Code Online (Sandbox Code Playgroud)

左外连接应该比"不在"或其他类型的查询快得多.