我知道我可以对别名使用标签方法,但我不知道如何在查询的后面使用标签元素 - 如下所示:
session.query(Foo.bar.label("foobar")).filter(foobar > 10).all()
当然,这是行不通的,因为没有名为 foobar 的变量。这怎么可能实现?
(过度简化的例子只是为了便于理解......)
我知道我可以对别名使用标签方法,但我不知道如何在查询的后面使用标签元素 - 如下所示:
session.query(Foo.bar.label("foobar")).filter(foobar > 10).all()
当然,这是行不通的,因为没有名为 foobar 的变量。这怎么可能实现?
(过度简化的例子只是为了便于理解......)
顺便说一句,我相信您可以将标记的列本身用作表达式:
foobar = Foo.bar.label("foobar")
session.query(foobar).filter(foobar > 10).all()
只需将 foobar 放在引号中。它会order_by
像这样工作:
session.query(Foo.bar.label("foobar")).order_by('foobar').all()
对于过滤器,您可以使用原始 sql 条件:
session.query(Foo.bar.label("foobar")).filter("foobar > 10").all()