在pymysql中选择查询

时间:2015-02-15 20:01:40

标签: python sql 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

我确信答案很简单,但我是初学者,所以任何帮助都会非常感激 - 谢谢!

2 个答案:

答案 0 :(得分:18)

cur.execute()只返回受影响的行数。您应该cur.fetchone()获取实际结果,或cur.fetchall()如果您需要多行。

答案 1 :(得分:15)

cursor.execute()方法给出了与SQL语句结果相关的游标。如果是select查询,它将返回满足它的行(如果有)。因此,您可以使用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'])
祝你好运!