最近碰到需要从mysql数据库取数据的操作,记一下使用到的函数:
从mysql数据库取数据用到的三个函数:
fetchone() :
返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None
fetchall() :
返回多个元组,即返回多个记录(rows),如果没有结果 则返回 ()
fetchmany(num):
同fetchall一样,只不过返回的是指定个数的元组。
self.cursor.execute("select article_title from article where article_title != 0 ")
# all_data = self.cursor.fetchmany(6) # 测试用fetchmany()
all_data = self.cursor.fetchall() # 实现用fetchall()
print(all_data)
# 将内容content保存到文件中
for data in all_data:
print(data[0]) # data[0] 就是 all_data里面的第一个 article_title 元素
sql = "select article_title, article_tags, article_content, big_category, small_category from article where article_title=%s"
para = str(data[0])
self.cursor.execute(sql, para)
time.sleep(1)
# one_data = self.cursor.fetchall()
# one_data = self.cursor.fetchmany(1) # 测试结果:fetchmanny、fetchall为二维元组
one_data = self.cursor.fetchone() # fetchone为一位元组
print(one_data)
1、如果select本身取的时候有多条数据时:
cursor.fetchone():将只取最上面的第一条结果,返回单个元组如(‘a’,‘b’),然后多次使用cursor.fetchone(),依次取得下一条结果,直到为空。
cursor.fetchmany(num) :将返回num个结果,返回二维元组
cursor.fetchmany(6) :将返回6个结果,返回二维元组
cursor.fetchall() :将返回所有结果,返回二维元组,如((‘a’,‘b’),(‘a2’,b2’)),
2、如果select本身取的时候只有一条数据时:
cursor.fetchone():将只返回一条结果,返回单个元组如(‘a’,‘b’)。
cursor.fetchall() :也将返回所有结果,返回二维元组,如((‘a’,‘b’),),
cursor.fetchmany(1) :因为只有一条数据,所以必须要指定num为 1,返回值和fetchall一样,返回二维元组。
参考地址