2016-05-22 72 views
0

我需要從表中獲得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))