我有一个 Python 值列表和一个包含某个列的 PostgreSQL 表。我想知道对于我 Python 列表中的每个元素,是否存在该 ID 的任何行在表中。
例如,假设我有以下 Python 列表:
vals = [4, 8, 15, 16, 23, 42]
并且查询语句为:
select my_col from my_table;
给予:
[4, 5, 6, 7, 8]
然后我想要一个返回以下内容的查询:
[True, True, False, False, False, False]
我可以循环遍历该列表,并为每个值执行一个新的 "select exists",但我想知道是否有一种方法可以在单个调用中完成?
我仅限于postgresql 9.0
select
之后使用2行Python呢?一行将结果转换为集合s
,然后只需使用[x in s for x in vals]
即可。 - Alex Martelli