试图在 Flask-SQLAlchemy 中使查询不区分大小写 [重复]

Posted

技术标签:

【中文标题】试图在 Flask-SQLAlchemy 中使查询不区分大小写 [重复]【英文标题】:Trying to make a query case insensitive in Flask-SQLAlchemy [duplicate] 【发布时间】:2022-01-20 11:33:59 【问题描述】:

如何让这个查询不区分大小写?

result = db.session.query(countries).filter_by(name=country,capital=capital).first()

顺便说一句,我正在使用 Flask SQL-Alchemy。我可以做到 db.func.lower() 但我还没有找到在我的线路中正确使用它的方法。

【问题讨论】:

【参考方案1】:

您应该使用filter 而不是filter_by

from sqlalchemy import func

result = db.session.query(countries).filter(
   func.lower(countries.name) == name.lower(),
   func.lower(countries.capital) == capital.lower()
).first()

如果countries 是一个表(不是模型),您应该使用countries.c.name 语法。

类似话题:Case Insensitive Flask-SQLAlchemy Query.

【讨论】:

非常感谢您的回答!你是对的。顺便说一句,我正在使用一张桌子!所以使用你展示的语法使它工作。顺便说一句,在您的代码中有 filter_by。这是最终为我工作的代码:result = db.session.query(countries).filter( db.func.lower(countries.c.name) == country.lower(), db.func.lower(countries.c.capital) == capital.lower() ).first() 这是拼写错误。已更正

以上是关于试图在 Flask-SQLAlchemy 中使查询不区分大小写 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Flask-SQLAlchemy 中联表查询

试图在 Swift 中使 UISearchController 的功能类似于 iPhone 中的语言设置

在 Flask-SQLAlchemy 中查询表的简写

FLASK-SQLALCHEMY如何使用or和and条件进行组合查询

Flask-Sqlalchemy:数据库查询不返回新数据

Flask-SQLAlchemy精确查询&模糊查询---ORM(1)