如何在web2py中使用group by时选择第一行

时间:2015-11-22 21:22:56

标签: database web2py

我在db中有一个表。当我使用这段代码时

results = db().select(db.project.ALL, orderby=db.project.id, groupby=db.project.status)

我只能选择重复的最后一行。我怎么能选择第一个?

1 个答案:

答案 0 :(得分:1)

select()方法将返回Rows对象,该对象是Row个对象的可移动集合。行results变量中的行的顺序将根据您传递给orderby方法的select()参数而有所不同。如果您只想获得一条记录,这是select()中的第一条记录,您可以将上述代码更改为:

results = db().select(db.project.ALL, orderby=db.project.id, groupby=db.project.status).first()

但是,如果您的意图是反转您在结果中获取行的顺序,请将波形符运算符(~)添加到orderby参数中,这将导致添加关系数据库中的ORDER BY ____ DESC。例如:

results = db().select(db.project.ALL, orderby=~db.project.id, groupby=db.project.status)