SQLAlchemys .first() 和 .fetchone() 之间的区别

Ale*_* Yo 0 python sqlalchemy

我想知道这两者有什么区别?我经常看到人们使用 .fetchone() ,而我只将 .first() 放在那里。他们是一样的吗?如果不是,一个比另一个快吗?

nos*_*wah 7

first()- 会给你第一行然后关闭。它永远不会给你第二排。

fetchone()会给你第一行,但你再次调用它会给你第二行,然后是第三行,等等......一旦所有行都被提取,它将返回None

这是 MySQL文档中的一个示例(注意:sqlalchemy fetchone() 调用 cursor.fetchone()):

# Using a while loop
cursor.execute("SELECT * FROM employees")
row = cursor.fetchone()
while row is not None:
  print(row)
  row = cursor.fetchone()
Run Code Online (Sandbox Code Playgroud)

如果您只想要第一行,请使用first(). 如果您需要所有行但一次只需要一行,请使用fetchone().