Я пытаюсь получить количество строк из таблицы и напечатать ее. Я делаю это, как показано ниже:
cursor = db.cursor()
cursor.execute("""SELECT count (*) table limit 30""")
df = cursor.fetchall()
Я пытаюсь напечатать вывод выше, как показано ниже:
for num in df:
print(num)
Это возвращает "1", хотя ожидаемый результат равен 30. Может ли кто-нибудь советоваться о том, где я буду ошибаться. Спасибо
Поскольку вы хотите напечатать значение первого (и единственного) столбца в наборе результатов, вы должны использовать это:
cursor = db.cursor()
cursor.execute("""SELECT COUNT(*) AS cnt FROM table LIMIT 30""")
row = cursor.fetchone()
if row is not None:
print(df["cnt"])
Если это все равно возвращает счет 1
, то есть еще одно возможное объяснение. В вашей таблице по совпадению может быть только одна запись. LIMIT 30
не означает, что 30 записей всегда возвращаются, просто возвращается максимум 30 записей.
Замечание: использование LIMIT
без ORDER BY
довольно бессмысленно. Если вы ограничиваете, вы должны также сортировать.