【发布时间】:2015-03-06 21:59:36
【问题描述】:
我有一个 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]
我可以遍历列表并为每个值执行一个新的“选择存在”,但我想知道是否有一种方法可以在一次调用中完成?
我仅限于 postgresql 9.0
【问题讨论】:
-
为什么不在
select之后使用两行Python?将结果放入集合s,然后只需[x in s for x in vals]? -
那么将整个DB列拉入python?那会奏效。它会在某个时候有几亿个条目,所以不确定这是否会对性能有点不利? (该列将被索引。)
-
该示例仅用于说明 - 我并没有真正选择代码中的完整列。
标签: python postgresql psycopg2 postgresql-9.0