Python MySQLdb iterate through table

前端 未结 2 1065
面向向阳花
面向向阳花 2021-02-07 13:53

I have a MSQL db and I need to iterate through a table and perform an action once a WHERE clause is met. Then once it reaches the end of the table, return to the top and start o

相关标签:
2条回答
  • 2021-02-07 14:34

    This will set the cursor at the beginning of the result set and tell you how many rows it got back (I went back and forth on this one, but this is the most authoritative documentation I have found, older Python MySQLdb lib returned rowcount on execute, but Python Database API Specification v2.0 does not, this should be the most compatible)

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

    Will tell you how many Rows you got in return

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

    Will iterate over each row (no need to enumerate x with range)

    0 讨论(0)
  • 2021-02-07 14:39

    Once you have results in the cursor, you can iterate right in it.

    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
    
    0 讨论(0)
提交回复
热议问题