如何使用SQLITE选择包含字符串的条目

时间:2017-01-05 14:06:12

标签: python-2.7 sqlite sqlalchemy

我有一个SQLite数据库,我有一个表有一个名为Support的列。

支持列有一个值(A,B,C,D)的列表,但是这个列表是一个字符串而不是一个数组,并且元素没有类型。

我想选择该列表中包含A的条目。但我无法使用IN运算符和内部查询,因为它是一个字符串而不是一个数组。

我正在使用SQLAlchemy,并且它的文档说当使用SQLite作为后端时MATCH不起作用,那么我该如何进行?

1 个答案:

答案 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中过滤内存中的列表。但是,通常我认为最好在数据库级别执行过滤。