Python SQLAlchemy在文本列上创建in_

时间:2018-12-14 19:20:56

标签: python sqlalchemy

我需要sqlalchemy中的一个条件,该条件允许我使用存储在TEXT列中的ID列表作为in_的参数。 id像1,2,3,4一样简单地存储。我尝试使用in_,但似乎存储在TEXT列中的“列表”不是正确的方法。

这是我尝试过的:

filters.append(and_(Organisation.id.in_(Session.list_id), Session.token == token))

这给了我这个错误:

sqlalchemy.exc.InvalidRequestError: in_() accepts either a list of expressions, a selectable, or an "expanding" bound parameter: Column('list_id', Text(), table=<MYTABLE>)  

所以我尝试找到一个拆分来做类似的事情:

filters.append(and_(Organisation.id.in_(Session.list_id.split(',')), Session.token == token))

但是分裂,爆炸或各种分离功能都不存在!

我尝试使用更多的SQL方式,但是我总是碰到使用不存在的函数!

filters.append(Organisation.id.in_(ds.query(Session.list_id).filter(Session.token == token)))

实现此目标的最佳方法是什么?我的最后一个想法是创建一个表来将每个id存储在单行中,但是对于我需要的东西似乎有点过分了。或在单独的查询中执行。

任何提示将不胜感激。

谢谢

0 个答案:

没有答案