簡體   English   中英

SQLAlchemy查詢動態字段

[英]SQLAlchemy Query Dynamic Field

我的桌子上有很多列-

class Dummy(object):
    __tablename__ = 'dummies'
    c1 = Column(Integer)
    c2 = Column(Integer)
    c3 = Column(Integer)
    ...
    cN = Column(Integer)

是否可以在不手動指定每個列名稱的情況下單獨查詢所有列? -

for i in range(1, N):
    c_name = 'c%d' % i
    dummy = DBSession().query(Dummy).filter_by(???=0).first()

謝謝。

您可以遍歷表中的列。 一,表:

from sqlalchemy.orm.attributes import manager_of_class
dummy_table = manager_of_class(Dummy).mapper.mapped_table

最后,查詢

for col in dummy_table.columns:
    dummy = session.query(Dummy).filter(col == 0).first()

或者,也許實際上是通過比您展示的更加復雜的函數來生成一組特定的列。 在這種情況下,請使用getattr 不完全是。

for i in range(1, N):
    c_name = 'c%d' % i
    dummy = DBSession().query(Dummy).filter(getattr(Dummy, c_name) == 0).first()

暫無
暫無

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

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