使用SQLAlchemy过滤sql count(*)

leo*_*kof 7 sql filtering sqlalchemy count

如何使用SQLAlchemy执行以下SQL查询?

SELECT COUNT (*)
FROM det_factura
WHERE company = 31
  AND date::text LIKE '2011-05% ';
Run Code Online (Sandbox Code Playgroud)

van*_*van 7

如果det_factura也是映射对象,那么此查询应该这样做:

qry = (session.query(func.count(det_factura.id))
        .filter(det_factura.company==31)
        .filter(det_factura.date.like('2010-05%'))
        )
Run Code Online (Sandbox Code Playgroud)

如果它是一个table实例,下面的那个应该工作:

qry = select([func.count(det_factura.id)],
        and_(det_factura.company==31,
             det_factura.date.like('2010-05%')
            )
        )
Run Code Online (Sandbox Code Playgroud)

  • @shaunc:你总是可以``func.count('*')`得到`COUNT(*)`SQL表达式. (2认同)