0

我使用ScalarListTypefromSQLAlchemyUtils作为我的表的列类型。

我可以使用查询过滤此列contains()。它按预期工作:

(我的表被称为Event,列被称为string_list)。

f = session.query(Event).filter(Event.string_list.contains(['item']))

此查询返回string_list包含元素的所有事件item

现在,我在(我似乎是)必须用来literal_column()生成查询过滤器的上下文中使用此列类型。然而,在这样做时, contains 不再适用于['item']作为参数:

f = session.query(Event).filter(literal_column("string_list").contains(['hello']))

它引发了:

sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.

似乎literal_column()丢失了声明类型的信息,因此无法再处理 ['item'] 。

有没有更好的方法来生成获取列而不是使用literal_column()?我试过column()- 它也不起作用。

4

0 回答 0