@SushkaCraftHabr

Почему при подсчете количества строк в SQLite3 выводится не число, а 0x0000009E9DC70E30>?

Почему при выполнении данного куска когда - ids = cur.execute('SELECT SUM(ID) FROM order_id')
выводит 0x0000009E9DC70E30>, а не целое число?
  • Вопрос задан
  • 398 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
1. Ты получил объект-курсор. У него нет строкового представления, поэтому пр ивыводе он отображается по умолчанию - <Cursor object at адрес-объекта-в-памяти>
Чтобы получить выбранные данные, нужно вызывать методы fetchone() или fetchall().
2. Если ты делаешь запрос к БД, который возвращает данные (неважно какие), получить их придётся как описано выше. Что это за данные - сами строки, какая-то агрегатная функция, или еще что - не важно. Даже если выполнишь запрос вида SELECT 123;, всё равно результат придётся вытаскивать через fetchone()/fetchall().
3. SUM(id) вернёт тебе сумму всех идентификаторов строк в таблице, а не количество строк в ней. Используй COUNT(*).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
патамуша указатель на область памяти, декоратор - генератор

ты сделай типа там fetchall() fetchone и все такое
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы