簡體   English   中英

SQLAlchemy查詢返回無

[英]SQLAlchemy query returns None

我正在嘗試通過ID檢查是否已經通過這種方式在DB中創建了某些條目:

def if_entry_exist(self, uid, table_name, by="id"):

    tb = self.get_table_by_name(table_name)
    #t = self.session.query(tb[0]).filter(tb[0].c[by].key==uid).scalar() 
    #quer = self.session.query(tb[0]).filter(tb[0].c[by].key == uid)
    #print(self.session.query(quer.exists()).scalar())

    #exists = self.session.query(tb[0]).filter(tb[0].c[by].key==uid).scalar() is not None
    return bool(self.session.query(tb[0]).filter(tb[0].c[by].key==uid).first())

我嘗試了不同類型的查詢,但沒有結果。 當我確認ID相同時,它總是返回false或None。

問題在於您正在將Column的鍵與uid進行比較,而不是列本身。 最關鍵的是"id" ,或者是by恰好是處於通話狀態,所以...key == uid很可能會評估為False在Python,這意味着你的查詢是有效的

return bool(self.session.query(tb[0]).filter(False).first())

這應該很清楚為什么查詢從不返回結果。 只需刪除鍵屬性訪問並執行與Column的比較:

return bool(self.session.query(tb[0]).filter(tb[0].c[by] == uid).first())

暫無
暫無

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

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