使用sqlalchemy自动处理单行与多行

oxiaedzo  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(269)

我还在学习sqlalchemy,所以如果我认为这完全是错误的(或者使用了错误的术语),我很抱歉,但是如果我理解正确,如果我查询一个有多行的表,我需要遍历返回的对象来访问每一行的数据,而如果表中只存在一行,我不需要遍历对象,可以直接访问列名。例如(希望我做得对):


# when multiple records exist

records = session.query(Customer).all()
for row in records:
    print(row.name)


# when a single record exists

records = session.query(Customer).all() 
print(records.name)

对我来说似乎没有意义的是,我需要编写两种不同的方法来访问数据,这取决于是否返回一行或多行。这看起来很奇怪,另外一个事实是我不能很容易地找出返回的记录集中有多少行,这样我就可以相应地对数据进行操作。有什么我不知道的吗?有没有一个方法可以用来访问从查询返回的数据,而不管数据库中是否有一行或多行?
谢谢!迈克

yebdmbv4

yebdmbv41#

如果使用查询 .all() 要获取一个或多个数据,仍然必须循环数据。如果查询只得到一行,则可以使用 .first() 或者 .one() 没有循环你就能得到数据。

相关问题