mysqlデータベースからデータを取得:fetchone()、fetchall()fetchmany()

3640 ワード

最近mysqlデータベースからデータを取得する操作に遭遇しました.使用した関数をメモしてください.mysqlデータベースからデータを取得するために使用した3つの関数:fetchone():単一のメタグループ、つまりレコード(row)を返し、結果がなければNoneを返します.
fetchall():複数のメタグループを返します.すなわち、複数のレコードを返します.結果がなければ()を返します.
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個の結果が返され、2次元メタグループcursorが返されます.Fetchmany(6):6つの結果が返され、2 Dメタグループが返されます.
cursor.Fetchall():すべての結果が返され、二次元メタグループが返されます(((‘a’,‘b’),(‘a 2’,b 2’))、
2、select自体が取ったときに1つのデータしかなかった場合:
cursor.fetchone():結果は1つだけ返され、(「a」,「b」)のような単一のメタグループが返されます.
cursor.fetchall():すべての結果も返され、二次元メタグループ(例えば(‘a’,‘b’)、
cursor.fetchmany(1):データが1つしかないのでnumを1に指定し、戻り値はfetchallと同様に2 Dメタグループを返さなければなりません.
リファレンスアドレス