3

SQLAlchemy で次のクエリを表現したいと思います。

select * from table where bit_count(column & bitmask) > 5

基本的に、特定の数のフラグが設定された行を選択しようとしています。ただし、SQLAlchemy はBIT_COUNT()関数を定義していないようです。SQLAlchemy でこのクエリを作成するための秘訣を知っている人はいますか?

4

1 に答える 1

3
>>> session.query("id", "name", "thenumber12").\
...         from_statement("SELECT id, name, 12 as "
...                 "thenumber12 FROM users where bit_count(column&bitmask)<:the_val").\
...                 params(the_val=5).all()

想像するような何か…

また

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)
>>> engine.execute("select * from table where bit_count(column & bitmask) > 5").scalar()

これがbit_countの正しい使用法であるという前提で動作していることに注意してください...

于 2012-10-15T14:27:14.333 に答える