首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将查询结果赋值给变量

问将查询结果赋值给变量
EN

Stack Overflow用户
提问于 2014-12-18 02:57:25
回答 3查看 31.5K关注 0票数 5

我使用下面的查询cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")来计算同一地址(192.168.1.1)出现在list_table表中的次数。addr是一种内联类型。

当我将查询赋值给一个变量并打印它的结果时,我得到了None

代码语言:javascript
复制
res = cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")
print res # None

得到这样的东西的正确方式是什么?

EN

回答 3

Stack Overflow用户

发布于 2016-02-14 17:03:57

您可以使用以下步骤通过python检索关系数据库的数据:

代码语言:javascript
复制
    #!/usr/bin/python
    # import the desired package
    import MySQLdb

    # Open database connection
    db = MySQLdb.connect(hostaddress,user,password,db_name)

    # prepare a cursor object using cursor() method
    cursor = db.cursor()

    # execute SQL query using execute() method.
    cursor.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")

    # Fetch a single row using fetchone() method and store the result in a variable. 
    data = cursor.fetchone()

  #OR use fetchall() method to fetch multiple rows and store the result in a list variable. 
 data = cursor.fetchall()

    print data

    # disconnect from server
    db.close()
票数 8
EN

Stack Overflow用户

发布于 2014-12-18 03:01:22

您必须使用fetchone()或fetchall()从游标中获取行。

看一看available fetch methods。

在您的例子中,大致是这样的:

代码语言:javascript
复制
res = cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")
row = cur.fetchone()
print(row)
票数 4
EN

Stack Overflow用户

发布于 2014-12-18 03:11:41

只是更多的解释。

execute()方法准备并执行数据库操作,并根据文档:

方法返回None。如果执行了查询,则可以使用fetch*()方法检索返回值。

fetchone()是最方便使用的,因为您的查询返回单个值,即计数:

代码语言:javascript
复制
print(cur.fetchone())
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27532823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档