Получите строки и их количество

#python #sql #sqlalchemy #flask-sqlalchemy

Вопрос:

Допустим, я хотел бы получить строки данной таблицы и получить их общее количество в том же запросе. Как это можно сделать в SQLAlchemy?

Я пытался:

 session.query(Model, func.count(Model.id)).all()
 

но кажется, что в Python загружается только одна запись, даже если количество равно 11.

Заранее благодарю вас!

Ответ №1:

Точно так же, как вы бы нашли длину списка:

 rows = session.query(Model).all()
number_of_rows = len(rows)
 

Комментарии:

1. session.query(Model).count() является более эффективным, поскольку он вычисляет количество на стороне базы данных

2. Может быть? 🙂 Запросы с одним попаданием в индекс-может быть? те, что с соединениями и фильтрами… может, и нет? например, быстрее ли выполнить запрос дважды, один с a .all() , один с a .count() . Или только len() тот, который уже извлечен и сохранился в памяти.