first()
- даст вам первую строку, а затем закроется. Он никогда не даст вам вторую строку.
fetchone()
даст вам первую строку, но если вы вызовете ее снова, она даст вам вторую строку, затем третью строку, et c .. . После того, как все строки были извлечены , будет возвращено None
.
Вот пример из MySQL docs (ПРИМЕЧАНИЕ: sqlalchemy fetchone () вызывает курсор .fetchone ()):
# Using a while loop
cursor.execute("SELECT * FROM employees")
row = cursor.fetchone()
while row is not None:
print(row)
row = cursor.fetchone()
Если вам нужна только первая строка, используйте first()
. Если вам нужны все строки, но только по одной, используйте fetchone()
.