Select 在 pymysql 中查询
Select query in pymysql
执行以下操作时:
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor()
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))
输出为1
我如何更改代码以便打印 ParentGuardianID 的实际值(即“001”)而不是 1
。
我确定答案很简单,但我是初学者,因此非常感谢任何帮助 - 谢谢!
cur.execute()
只是 returns 受影响的行数。您应该执行 cur.fetchone()
以获得实际结果,或者如果您需要多行,则执行 cur.fetchall()
。
cursor.execute()
方法给出了一个与SQL语句的结果相关的游标。在 select
查询的情况下,它 returns 满足它的行(如果有的话)。因此,您可以使用 for
循环等方式遍历这些行。此外,我建议您使用 pymysql.cursors.DictCursor
,因为它允许将查询结果视为字典。
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor(pymysql.cursors.DictCursor)
UserId = 'whatsoever'
sql = "SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='%s'"
cur.execute(sql % UserId)
for row in cur:
print(row['ParentGuardianID'])
祝你好运!
执行以下操作时:
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor()
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))
输出为1
我如何更改代码以便打印 ParentGuardianID 的实际值(即“001”)而不是 1
。
我确定答案很简单,但我是初学者,因此非常感谢任何帮助 - 谢谢!
cur.execute()
只是 returns 受影响的行数。您应该执行 cur.fetchone()
以获得实际结果,或者如果您需要多行,则执行 cur.fetchall()
。
cursor.execute()
方法给出了一个与SQL语句的结果相关的游标。在 select
查询的情况下,它 returns 满足它的行(如果有的话)。因此,您可以使用 for
循环等方式遍历这些行。此外,我建议您使用 pymysql.cursors.DictCursor
,因为它允许将查询结果视为字典。
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor(pymysql.cursors.DictCursor)
UserId = 'whatsoever'
sql = "SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='%s'"
cur.execute(sql % UserId)
for row in cur:
print(row['ParentGuardianID'])
祝你好运!