使SQLAlchemy查询对列表不区分大小写
我正在尝试用字符串列表来查询我的PostgreSQL数据库。我想要返回所有列中与这些字符串匹配的行,并且希望这个匹配不区分大小写,这样可以找到更多的结果。
fruits = ['apple', 'orange', 'pear', 'grape', 'watermelon', 'asian pear']
在这种情况下,数据库中的“asian pear”可能是大写的。
obs = session.query(datamodel).filter(datamodel.fruitname._in(fruits)).all()
我知道可以用func.lower(),我在单个查询中使用过这个,但我不太确定在使用列表时应该把它放在哪里。
我在单个项目查询中会这样使用func.lower:
obs =session.query(datamodel).filter(func.lower(datamodel.fruitname)==func.lower(fruits[5]))).first()
1 个回答
5
真是笨啊我...
在写这个问题的时候,我自己想明白了...
这就是答案...
session.query(datamodel).filter(func.lower(datamodel.fruitname).in_(fruits)).all()