使列表不区分大小写的SQLAlchemy查询

时间:2014-03-10 03:22:18

标签: python sql postgresql 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 个答案:

答案 0 :(得分:5)

愚蠢的我......

在写这个问题时,我想通了...... 这就是答案......

session.query(datamodel).filter(func.lower(datamodel.fruitname).in_(fruits)).all()