2017-10-29 9 views
0

私はsqlite3でユーザー名のROWIDを取得しようとしています。私は基本的なことを持っていますが、実行するとsqlite3.Cursorオブジェクトが0x03885660になります。同じユーザー名。私はそれが私がROWIDを印刷するためだが、私は代替方法を見つけることができないことを知っている。データベースsqlite3の単語のROWIDを取得するには?

は、ここに私のコードです:

def sign_in(): 
    username = input("What is your username?") 
    password = input("What is your password?") 
    c.execute("SELECT username FROM stuffToPlot") 
    names = {name[0] for name in c.fetchall()} 
    if username in names: 
     rowid = c.execute("SELECT rowid, * FROM stuffToPlot WHERE username = (username)") 
     print(rowid) 
+0

なぜROWIDが必要ですか?それは永久的な識別子ではありません。これはクエリの現在の実行の単なる識別子であり、次回同じデータをクエリするときには完全に異なる可能性があります。 –

+0

ROWIDは挿入時に行に割り当てられ、行が削除されて再挿入されない限り変更できません(同じ行ではなく別の行であることを意味します)。 – Saelyth

答えて

0

あなたはあなたのカーソルがそのクエリを実行ポイントになったが、その後、あなたはそれから何を返すように指示する必要があります。そのクエリの最初の一致を返しますか?すべてのレコードを返しますか?必要なものに応じてデータを取得します。 fetchone(),などの他の方法で入手することができます。

if username in names: 
    c.execute("SELECT rowid, * FROM stuffToPlot WHERE username = (username)") 
    rowid = c.fetchone() 
    print(rowid) 
関連する問題