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 ..?

  • Python MySQLdb: Abfrageparameter als benanntes Wörterbuch
  • IndexError: Tupel-Index außerhalb des Bereichs --- Python
  • Python easy_install: Geben Sie das Verzeichnis an, in dem die benötigten Dateien gespeichert sind
  • Schnellste Möglichkeit, numerische Daten in Python / Pandas / Numpy Array von MySQL zu laden
  • MySQLdb mit mehreren Transaktionen pro Verbindung
  • Python MySQLdb Konverter funktioniert nicht
  • Python: ValueError: Nicht unterstütztes Formatzeichen '' '(0x27) bei Index 1
  • String-Ersatzprobleme in mysqldb.exeute
  • 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.