MSQLデータベースがあり、WHERE句が満たされたら、テーブルを反復処理してアクションを実行する必要があります。次に、テーブルの最後に到達したら、一番上に戻って最初からやり直します。
現在私は持っています
cursor = database.cursor()
cursor.execute("SELECT user_id FROM round WHERE state == -1 AND state = 2")
round_id = cursor.fetchone()
if round != 5
...do stuff
ループ内ですが、これは明らかに最初のエントリのみをループし続けます。テーブルを読み取るにはforin関数を使用する必要があると思いますが、mysqldbを使用してこれを行う方法が正確にわかりませんか?
これにより、結果セットの先頭にカーソルが設定され、戻ってきた行数がわかります(これを行ったり来たりしましたが、 これは最も信頼できるドキュメントです 私が見つけた、古いPython MySQLdb libは実行時に行数を返しましたが、PythonデータベースAPI仕様v2.0は返しません、これが最も互換性があるはずです)
cursor.execute("SELECT user_id FROM round WHERE state = -1 OR state = 2")
numrows = cursor.rowcount
見返りに何行取得したかを教えてくれます
for x in xrange(0,numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]
各行を反復処理します(範囲でxを列挙する必要はありません)
カーソルに結果が表示されたら、そのカーソルで繰り返し処理できます。
cursor = database.cursor()
cursor.execute("SELECT user_id FROM round WHERE state == -1 AND state = 2")
for round in cursor:
if round[0] != 5
...do stuff