fetchone()和fetchall()

Mokirito / 2023-05-10 / 原文

最近写小程序久违的用到了数据库,用fetch()返回数据库搜索的数据时却犯了个低级错误。

我本来只是获取一条数据,调用了fetchall(),想将数据转化为列表,却发现列表里的数据仍是元组

cursor.execute(sql)
res = list(cursor.fetchall())
print(res)

 想了一会用元组解包还是没用,原来

fetchone() :

fetchone()函数的功能是从游标(Cursor)中获取一行数据,如果没有数据则返回None

它的结构如下:

fetchone(self) -> tuple or None

其中,self表示游标对象。fetchone()函数返回一个元组,包含查询结果中的一行数据。如果没有数据,则返回None。

 

fetchall() :

fetchall()函数的功能是从游标(Cursor)中获取所有行数据,返回多个元组。它的结构如下:

fetchall(self) -> tuples or None

其中,self表示游标对象。fetchall()函数返回多个元组,包含查询结果中的所有行数据。如果没有数据,则返回None

 

修改后:

re = list(cursor.fetchone())
print(re)

 这就可以了。

推荐博主原文:(122条消息) 【Python】fetchone()和fetchall()_fetchone和fetchall_飘走的烟的博客-CSDN博客

①查询出有多条数据时:

cursor.fetchone():将只取最上面的第一条结果,返回单个元组如('id','name'),然后多次循环使用cursor.fetchone(),依次取得下一条结果,直到为空。

cursor.fetchall() :将返回所有结果,返回二维元组,如(('id','name'),('id','name')),

②查询只有一条数据时:

cursor.fetchone():将只返回一条结果,返回单个元组如('id','name')。

cursor.fetchall() :也将返回所有结果,返回二维元组,如(('id','name'),),

参考原文链接:https://blog.csdn.net/u014234260/article/details/79581041