我正在学习使用小马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)