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 回答