SQLAlchemy和多列不区分大小写的查询

2024-06-26 13:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有一个由第1列、第2列组成的表。。。,column\n和它们都是字符串字段。我们要进行不区分大小写查询的条件存储在一个字典d中,比如d[column_1]=“Hello”,它可能包含也可能不包含所有列。我们如何进行查询?在

我检查了问题Case Insensitive Flask-SQLAlchemy Query。它包含了很多很棒的答案,但是如果我们在运行时之前不知道有什么条件,那么这些答案都不起作用。在


Tags: 字符串答案flaskhello字典sqlalchemycolumn条件
1条回答
网友
1楼 · 发布于 2024-06-26 13:03:55

您需要在字典的每个键之间建立循环查询。在

由于您没有给出任何代码示例,我将调用表模型类TableModel,每个列将是column_1column_2,等等

这样的方法应该有效:

d = {'column_1': 'some_string', 'column_3': 'another_string'}
# skipping 'column_2' just to exemplify how every column is optional in the dictionary

my_query = TableModel.query

for k in d:
    my_query = my_query.filter(getattr(TableModel, k).ilike(d[k]))

就这样。然后,您可以使用my_query作为任何其他查询,例如my_query.count()或{}

相关问题 更多 >