簡體   English   中英

如何檢查 SqlAlchemy 中的查詢是否返回空結果?

[英]How to check if query in SqlAlchemy returns empty result?

我想執行這樣的查詢:

    query = users.select().where(users.column.id == id)
    res = await database.execute(query)

然后我想通過檢查res添加一些錯誤處理。 if not res似乎不正確。 這樣做的正確方法是什么?

您可以嘗試從查詢中獲取第一個 object 並檢查它是否像這樣 Null

result = users.select().where(users.column.id == id).first()
if not result:
    print('query is empty')

編輯代碼的另一種方式是

res = query.first()

然后檢查是否是 Null

根據查詢的復雜性,將其包裝在SELECT EXISTS(...)中可能比SELECT... LIMIT 1更便宜,正如 Antonio 所描述的。 PostgreSQL 可能知道將這些查詢視為相同,但根據此答案,並非所有 DBMS 都可能這樣做。

這種解決方案的美妙之處在於它一旦找到任何結果就存在——它做的工作盡可能少,因此盡可能便宜。 SQLAlchemy中,這將是sa.select([sa.exists(query)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM