SQL返回发现不存在的记录的Id参数

时间:2012-04-23 04:46:38

标签: sql ruby-on-rails postgresql activerecord

我有一个查询,我正在使用一系列属性,例如[1,2,3,4]等我需要检查一个表,看看是否存在具有该id的记录,我对那些不存在而不是那些存在的记录感兴趣。

目前我正在循环遍历Ruby中的数组,然后为每个数组生成单独的SELECT请求。这样做很有效,但是数组通常很长,并且制作许多单独的请求似乎非常低效。

我想知道是否有办法将整个数组传递给Postgres,然后Postgres将所有不存在的id传回给我。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:1)

好的想通了:

SELECT *
FROM unnest(ARRAY[1,2,3,4,5]) as s
WHERE s NOT IN (SELECT id FROM my_table);