我有一个查询,我正在使用一系列属性,例如[1,2,3,4]等我需要检查一个表,看看是否存在具有该id的记录,我对那些不存在而不是那些存在的记录感兴趣。
目前我正在循环遍历Ruby中的数组,然后为每个数组生成单独的SELECT请求。这样做很有效,但是数组通常很长,并且制作许多单独的请求似乎非常低效。
我想知道是否有办法将整个数组传递给Postgres,然后Postgres将所有不存在的id传回给我。
谢谢,
克里斯
答案 0 :(得分:1)
好的想通了:
SELECT *
FROM unnest(ARRAY[1,2,3,4,5]) as s
WHERE s NOT IN (SELECT id FROM my_table);