Python MySQLdb iterate durch Tabelle

Ich habe eine MSQL db und ich muss durch einen Tisch iterieren und eine Aktion ausführen, sobald eine WHERE-Klausel erfüllt ist. Dann, sobald es das Ende des Tisches erreicht hat, kehren Sie nach oben zurück und beginnen über.

Derzeit habe ich

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 

In einer Schleife aber das offensichtlich nur Schleife den ersten Eintrag, ich glaube, Sie müssen die für in Funktion verwenden, um durch den Tisch zu lesen, aber ich bin mir nicht sicher genau, wie dies mit mysqldb ..?

  • Über MySQLdb conn.autocommit (True)
  • MySQL-Python & Django 1.5.0: kein Modul namens mysql.base Fehler
  • Python mysqldb: Bibliothek nicht geladen: libmysqlclient.18.dylib
  • Python MySQLdb / MySQL INSERT IGNORE & Überprüfen, ob Ignoriert
  • Python easy_install: Geben Sie das Verzeichnis an, in dem die benötigten Dateien gespeichert sind
  • Python MySQL führt in der WHERE-Klausel aus
  • Wie kann man überprüfen, ob Datensatz mit Python MySQdb existiert
  • Python mysql.connector DictCursor?
  • 2 Solutions collect form web for “Python MySQLdb iterate durch Tabelle”

    Dies wird den Cursor am Anfang der Ergebnismenge setzen und Ihnen sagen, wie viele Zeilen es zurückgekommen ist (ich ging hin und her auf diesem, aber das ist die maßgeblichste Dokumentation, die ich gefunden habe, älterer Python MySQLdb lib hat den reihenzähler auf execute zurückgegeben , Aber Python Database API Spezifikation v2.0 nicht, das sollte am meisten kompatibel sein)

     cursor.execute("SELECT user_id FROM round WHERE state = -1 OR state = 2") numrows = cursor.rowcount 

    Will dir sagen, wie viele Zeilen du dafür bekommst

     for x in xrange(0,numrows): row = cursor.fetchone() print row[0], "-->", row[1] 

    Wird über jede Zeile iterieren (keine Notwendigkeit, x mit Bereich aufzuzählen)

    Sobald du Ergebnisse in den Cursor hast, kannst du genau hinein iterieren.

     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 
    Python ist die beste Programmiersprache der Welt.