我需要从表中获取25行。 首先,我需要获得所有固定线程。然后我需要得到(25个固定的)常规线程。
是否可以使用一个查询获取这些行? 现在我使用两个单独的查询:
p = Thread.select().where(Thread.pinned).limit(25)
t = Thread.select().where(Thread.pinned >> None).limit(25-len(p))
答案 0 :(得分:1)
未经测试,但你可以这样做:
case_stmt = case(None, (
(Thread.pinned >> None, 0),
), 1))
(Thread
.select(Thread, case_stmt.alias('pinned_first'))
.order_by(SQL('pinned_first').asc())
.limit(25))