Tho*_*son 2 python sqlite sqlalchemy distinct flask
是否可以使用不同的函数而不使用 sqlalchemy 中的“session”类?为什么或者为什么不?我在这里找到的答案:/sf/answers/2500288941/似乎它应该有效,但对我不起作用。请参阅下面的示例:
class Example(db.Model):
title = db.Column(db.String(140))
extra = db.Column(db.String(140))
e1 = Example(title='foo', extra='bar')
e2 = Example(title='hoo', extra='bar')
db.session.add_all([e1, e2])
db.session.commit()
test = []
for value in Example.query.distinct(Example.extra):
test.append(value.extra)
print(len(test))
...2
Run Code Online (Sandbox Code Playgroud)
结果应该是1而不是2。查看distinct()的文档,我觉得这应该可行。我缺少什么?
我找到了几种方法来实现我想要的。查看这个答案/sf/answers/1205683951/,为了获取不同的值,必须在值上显式调用distinct()。要在类形式中执行此操作,可以使用“with_entities”
Example.query.with_entities(Example.extra).distinct()
Run Code Online (Sandbox Code Playgroud)
另外,就我而言,一个简单的 group_by 也达到了预期的结果(但它可能不是评论中指出的最好/最便携的解决方案。)
test = []
for value in Example.query.group_by(Example.extra):
test.append(value.extra)
print (test)
....['bar']
Run Code Online (Sandbox Code Playgroud)