2010-10-19 38 views
4

有谁知道我可以做计数如果SQL炼金术一样SQLAlchemy的COUNT和IF

COUN(IF(table_row = 1 AND table_row2 =2),1,0) 

我做这样的事情,

func.COUNT(func.IF((TransactionMessage.tm_read==0 and TransactionMessage.tm_type==1),1,0)).label('t_message_count'), 

但是,如果与TransactionMesssage.tm_read的SQLAlchemy让2个独立的, 和TransactinMessage.tm_type

可以somone帮我解决问题吗?

回答

9

我没有环境下测试,但最有可能你需要使用sqlalchemy.sql.expression.and_表达:

from sqlalchemy.sql.expression import and_ 
... 
func.COUNT(func.IF(and_(TransactionMessage.tm_read == 0, 
         TransactionMessage.tm_type == 1), 1, 0) 
      ).label('t_message_count'), 
+0

感谢对帮助,它的工作! – gummmibear 2010-10-20 20:40:10

+0

感谢您的支持。它在SQLAlchemy站点中没有记录。 – fccoelho 2011-03-11 17:51:43