我正在使用 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'>
最佳答案
您可以在过滤器中使用 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"))
https://stackoverflow.com/questions/16573095/