Tôi làm cách nào để thực hiện truy vấn SQL sau bằng SQLAlchemy?Lọc số sql (*) bằng SQLAlchemy
SELECT COUNT (*)
FROM det_factura
WHERE company = 31
AND date::text LIKE '2011-05% ';
Tôi làm cách nào để thực hiện truy vấn SQL sau bằng SQLAlchemy?Lọc số sql (*) bằng SQLAlchemy
SELECT COUNT (*)
FROM det_factura
WHERE company = 31
AND date::text LIKE '2011-05% ';
Nếu det_factura
cũng là một đối tượng lập bản đồ, sau đó truy vấn này nên làm điều đó:
qry = (session.query(func.count(det_factura.id))
.filter(det_factura.company==31)
.filter(det_factura.date.like('2010-05%'))
)
Nếu nó là một ví dụ table
, là dưới đây nên làm việc:
qry = select([func.count(det_factura.id)],
and_(det_factura.company==31,
det_factura.date.like('2010-05%')
)
)
Cảm ơn bạn. SQLSoup tôi đang làm việc với, khi tôi thích ứng mã này để sqlsoup. – leonciokof
hmm .. nhưng nếu bạn không có trường id thì sao? làm thế nào để bạn chỉ nhận được "đếm (*)", có thể trong sự hiện diện của những thứ khác trong danh sách lựa chọn (vì vậy bạn không thể sử dụng sqlalchemy .count())? – shaunc
@shaunc: Bạn luôn có thể thực hiện 'func.count ('*')' để nhận biểu thức SQL 'COUNT (*)'. – van
gì SQL phụ trợ bạn đang sử dụng? – van