我正在使用Flask-SQLAlchemy从用户数据库中进行查询;然而,
user = models.User.query.filter_by(username="ganye").first()
将会返回
<User u'ganye'>
正在做什么
user = models.User.query.filter_by(username="GANYE").first()
返回
None
我想知道是否有一种方法可以以不区分大小写的方式查询数据库,这样第二个示例仍然会返回
<User u'ganye'>
发布于 2013-05-16 03:44:14
您可以通过在过滤器中使用lower
或upper
函数来完成此操作:
from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()
另一种选择是使用ilike
而不是like
进行搜索
.query.filter(Model.column.ilike("ganye"))
发布于 2019-05-08 13:36:06
你可以做到
user = db.session.query(User).filter_by(func.lower(User.username)==func.lower("GANYE")).first()
或者您可以使用ilike函数
user = db.session.query(User).filter_by(User.username.ilike("%ganye%")).first()
https://stackoverflow.com/questions/16573095
复制相似问题