显示最后两个有订购的实体和小马



我正在学习使用小马orm,并且使用此MWE ...

from pony import orm
db = orm.Database()
class Test(db.Entity):
    label = orm.Required(str)
db.bind(provider='sqlite',filename=':memory:')
db.generate_mapping(create_tables=True)
with orm.db_session:
    Test(label='text02')
    Test(label='text01')
    Test(label='text03')
orm.select(t for t in Test).order_by(lambda: t.label).filter(lambda: t.label > 'text01').show()

...我能够按照我想要的方式订购实体,然后使用它显示最后两个,知道哪个将是最后两个。

id|label
--+------
1 |text02
3 |text03

有没有更好的方法在关系/表中显示最后几个元组/行,尤其是如果我不知道我想过滤出哪些实体?我宁愿订购实体,然后只显示最后两个,而无需明确提供过滤器。有点像bash tail -n 2

您可以排序降序并进行第一个元素。

orm.select(t for t in Test).order_by(lambda: desc(t.label)).limit(2)

相关内容

最新更新