SQLAlchemy查询,其中列包含子字符串 - python

我正在使用SQLAlchemy和SQLite3构建查询,其中我想选择其中String列包含特定子字符串的行。做到这一点的最佳方法是什么?

参考方案

db.table.column.like('%needle%')过滤。对于不区分大小写的搜索,还有ilike

对于更高级的界面,您可以允许使用已知的“dir”通配符。

if '*' in needle or '_' in needle: 
    looking_for = needle.replace('_', '__')\
                        .replace('*', '%')\
                        .replace('?', '_')
else:
    looking_for = '%{0}%'.format(needle)

result = db.table.filter(db.table.column.ilike(looking_for))

笔记:

  • db.table.filterdb.table.column用于SQLSoup(如果数据库是由另一个应用程序创建的,则SQLSoup很有用)
  • 对于SQLAlchemy Core的

  • select(column_list).where(table.c.column.ilike(expr))。当您希望从原始SQL获得所有功能而不必使用字符串插值手动编写语句(将它与SQLSoup结合使用以进行内省Introspection ,因此无需声明表)时,可以使用此接口。
  • 用于SQLAlchemy声明式(在Flask中使用的一种),它是Model.query.filter(Model.field.ilike(expr))
  • 在返回'Response'(Python)中传递多个参数 - python

    我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

    Python exchangelib在子文件夹中读取邮件 - python

    我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

    Python sqlite3数据库已锁定 - python

    我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

    R'relaimpo'软件包的Python端口 - python

    我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

    Python / sqlite:从其他列具有某些值的行中以列表/元组的形式获取列值 - python

    我有一个带有4列的sqlite表,例如:id,pagenr,x1,y1。我需要以列表/元组的形式获取y1列的值,但只能从pagenr和x1具有某些值的行中获取。帮了大忙。注意:我正在使用python 2.6。 参考方案 使用sqlite3模块的此代码应将查询的结果行提取到output列表中:conn = sqlite3.connect('datab…