Python 在pymysql中选择查询
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28530508/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Select query in pymysql
提问by Jasmine078
When executing the following:
执行以下操作时:
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor()
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))
The output is1
输出是1
How could I alter the code so that the actual value of the ParentGuardianID (which is '001') is printed as opposed to 1
.
我如何更改代码以便打印 ParentGuardianID(即“001”)的实际值而不是1
.
I'm sure the answer is simple but I am a beginner so any help would be much appreciated - thanks!
我确定答案很简单,但我是初学者,因此非常感谢您的帮助 - 谢谢!
采纳答案by Daniel Roseman
cur.execute()
just returns the number of rows affected. You should do cur.fetchone()
to get the actual result, or cur.fetchall()
if you are expecting multiple rows.
cur.execute()
只返回受影响的行数。您应该这样做cur.fetchone()
以获得实际结果,或者cur.fetchall()
如果您期望多行。
回答by Guillermo Luque
The cursor.execute()
method gives out a cursor related to the result of the SQL sentence. In case of a select
query, it returns the rows (if any) that meet it. So, you can iterate over these rows using a for
loop for instance. In addition, I would recommend you to use pymysql.cursors.DictCursor
because it allows treating the query results as a dictionary.
该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'])
Good luck!
祝你好运!