web2py - 测试具有两个字段值组合的行

4 投票
2 回答
1344 浏览
提问于 2025-04-17 00:36

我正在创建一个web2py的控制器,我需要从一个表中查询一行数据,这一行的某个字段要等于值x,另一个字段要等于值y。要查询单个字段,我只需要写

db.table.field == x

但是我不知道怎么写一个查询,来查找field==x AND field2==y这样的条件。

2 个回答

1

如果你想要一个更高级的版本,可以把一个查询添加到列表中,然后使用Python的reduce函数。

queries=[]
if arg1 == "x": queries.append(db.table.field == x)
if arg2 == "y": queries.append(db.table.otherfield == y)
# many conditions here....
query = reduce(lambda a,b:(a&b),queries)
db(query).select()
5
(db.table.field1==x)&(db.table.field2==y)

请查看书中关于 逻辑运算符 的章节。

撰写回答