为了确认我已正确理解,您想传递一个数字列表,并查看现有表中 不 存在哪些数字?有效:
SELECt ItemFROM IDList I LEFT JOIN TABLE T ON I.Item=T.IDWHERe T.ID IS NULL
您似乎可以随时建立此查询,在这种情况下,可以通过将上面的代码更改为
SELECt NumberFROM (SELECt Number FROM Numbers WHERe Number IN (1,2,3,4)) I LEFT JOIN TABLE T ON I.Number=T.IDWHERe T.ID IS NULL
尽管由于查询的构建方式,这相对容易受到SQL Injection攻击。如果可以将“
1、2、3、4”作为字符串传递,并将其拆分为多个部分以生成数字列表以更安全的方式加入,则更好-
有关如何执行此操作的示例,请参见http://www.sqlteam.com/article/parsing-csv-values-into-
multiple-rows
所有这些都假定您的数据库中有一个数字/理算表,但是它们通常足够有用,因此我强烈建议您这样做。



