Разница между SQLAlchemys .first () и .fetchone () - PullRequest
0 голосов
/ 08 мая 2020

Мне интересно, в чем разница между этими двумя? Я часто вижу, как люди используют .fetchone () там, где я бы просто поместил .first (). Они одинаковы? Если нет, один быстрее другого?

1 Ответ

4 голосов
/ 08 мая 2020

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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...