在使用 Python 连接到 PostgreSQL 数据库时,我们使用的是 SQLAlchemy,而不是 ORM。我们有一个表,其中一列是字符串数组,我们想要检索数组列中不存在输入参数的所有行。请注意,我们可以检索 SQLAlchemy 的其他查询的结果,因此问题必须出在查询创建中。
我们需要实现的 SQL 如下所示:
select pk from table where 'paramstring' NOT IN(array_column);
-- returns several rows
我们在 Python 中想出的函数是这样的:
def get_not_matching(param):
select_statement = select([the_table.c.pk]).where(
~data_table.c.array_column.in_([param])
)
#... execute and retrieve ResultProxy
# the result_set comes back empty
任何建议将不胜感激。