Мне нужно условие в sqlalchemy, которое позволило бы мне использовать список идентификаторов, хранящихся в столбце TEXT, в качестве параметра для in_
.Идентификаторы просто хранятся как 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)))
Каков наилучший способ достичь этого?Моя последняя идея - создать таблицу для хранения каждого идентификатора в одной строке, но это кажется немного излишним для того, что мне нужно.Или сделайте это в отдельном запросе.
Любая подсказка будет оценена.
Спасибо