我有一个SQLite数据库,我有一个表有一个名为Support的列。
支持列有一个值(A,B,C,D)
的列表,但是这个列表是一个字符串而不是一个数组,并且元素没有类型。
我想选择该列表中包含A
的条目。但我无法使用IN
运算符和内部查询,因为它是一个字符串而不是一个数组。
我正在使用SQLAlchemy,并且它的文档说当使用SQLite作为后端时MATCH不起作用,那么我该如何进行?
答案 0 :(得分:1)
如果我理解了您的问题,那么您有一个名为支持的列,其中包含A,B,C,D
等字符串,您希望选择支持中元素“列表”包含A
的所有行。
我首先想到的是你可以在你的select语句中使用外卡。所以在SQL中会是:
SELECT * FROM my_table WHERE Support LIKE '%A%';
在SQLAlchemy中,这将是:
session.query(MyTable).filter(MyTable.Support.like('%A%')).all()
或者,您可以获取所有数据并在Python中过滤内存中的列表。但是,通常我认为最好在数据库级别执行过滤。