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'])

祝你好运!