次のように、sqlalchemy のクエリで単純なフィルター操作を実行しようとしています。
q = session.query(Genotypes).filter(Genotypes.rsid.in_(inall))
どこ
inall は文字列のリストです Genotypes はテーブルにマッピングされます: class Genotypes(object): pass
Genotypes.mapper = mapper(Genotypes, kg_table, properties={'rsid': getattr(kg_table.c, 'rs#')})
これは私には非常に簡単に思えますが、上記のクエリを実行して次のエラーが発生しますq.first()
。
「sqlalchemy.exc.OperationalError: (OperationalError) SQL 変数が多すぎます u'SELECT」の後に、inall リスト内の 1M 項目のリストが続きます。しかし、これらは SQL 変数ではなく、メンバーシップがフィルタリング基準であるリストにすぎません。
フィルタリングを正しく行っていませんか?
(データベースはsqliteです)