gpt4 book ai didi

sqlalchemy - 使用 SQLAlchemy 的 'fetchone()' 和 'LIMIT 1' 之间有区别吗

转载 作者:行者123 更新时间:2023-12-04 17:41:44 27 4
gpt4 key购买 nike

当使用 SQLAlchemy 从数据库中检索行时,您可以使用

query = "SELECT some_col FROM some_table"

row = session.execute(query).fetchone()

不过,你也可以这样做:

query = "SELECT some_col FROM some_table LIMIT 1"

row = session.execute(query).fetchall()

是否有任何理由比另一个更喜欢一个,例如性能更好?

最佳答案

第一个变体适用于所有 DBMS,第二个变体仅适用于支持非标准 LIMIT 关键字的那些。所以如果你想告诉数据库你想将结果限制在一行,你最好使用 SQLAlchemy 核心而不是 SQL 语句作为字符串。像这样的东西:

row = session.execute(select([some_table.c.some_col]).limit(1)).fetchone()

如果您真的只查询一行和一列,您可以考虑使用 scalar() 而不是 fetchone():

value = session.execute(select([some_table.c.some_col]).limit(1)).scalar()

关于sqlalchemy - 使用 SQLAlchemy 的 'fetchone()' 和 'LIMIT 1' 之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54202502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com