【发布时间】:2020-04-20 17:38:40
【问题描述】:
我需要从一个名为 Listing 的表中获取最后 100 条插入的不同记录。 其背后的数据库是Mysql,使用Flask和Sql-alchemy。 我需要应用不同的列是密钥字符串。 以下是我尝试过的查询。
db.session.query(Listing.category, Listing.subcategory, Listing.place, Listing.time, Listing.created_at, Listing.keystring).distinct(Listing.keystring).order_by(Listing.created_at).limit(100)
似乎没有应用 distinct。
我注意到,如果我从查询中删除 created_at,我会得到不同的值,但是我无法对结果进行排序。
【问题讨论】:
-
试试
.order_by(Listing.keystring, Listing.created_at) -
仍然得到相同的结果
-
这可能有效
db.session.query(...).order_by(Listing.created_at).from_self().distinct(Listing.keystring).limit(100) -
很遗憾不是,这意味着我的模型有问题?这不应该是一个非常简单的查询吗?也许我错过了什么......
-
distinct 和 order by 的组合总是令人头疼,也许在你的情况下它在 MySQL 方面检查这个stackoverflow.com/a/34691355/5274713
标签: python sqlalchemy