【问题标题】:How can I select entries that have a string in them with SQLITE如何使用 SQLITE 选择其中包含字符串的条目
【发布时间】:2017-05-20 02:50:33
【问题描述】:

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

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

我想选择该列表中包含A 的条目。但是我不能将 IN 运算符与内部查询一起使用,因为它是 string 而不是 array 。

我正在使用 SQLAlchemy,它的文档说 MATCH 在使用 SQLite 作为后端时不起作用,那么我该如何继续?

【问题讨论】:

    标签: python-2.7 sqlite sqlalchemy


    【解决方案1】:

    如果我理解您的问题,您有一个名为 Support 的列,其中包含 A,B,C,D 之类的字符串,并且您想选择 Support 中的元素“列表”包含 A 的所有行。

    我的第一个想法是您可以在 select 语句中使用通配符。所以在 SQL 中应该是:

    SELECT * FROM my_table WHERE Support LIKE '%A%';
    

    在 SQLAlchemy 中,这将类似于:

    session.query(MyTable).filter(MyTable.Support.like('%A%')).all()
    

    或者,您可以在 Python 中获取所有数据并过滤内存中的列表。但是,通常我认为在数据库级别执行过滤会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      相关资源
      最近更新 更多