【问题标题】:Python MySqlDB store_result returns only one rowPython MySqlDB store_result 只返回一行
【发布时间】:2014-09-05 12:32:48
【问题描述】:

我正在使用 MySqlDB 执行我在字典中的许多查询,我的问题是 store_result() 只返回我不想得到的几个统计信息之一。 以下是给我带来问题的查询:

SELECT value, COUNT(1) \
                FROM ourson_offerattributes oa \
                WHERE attribute_id='status_ltu_indexer' \
                GROUP BY \
                    CASE \
                        WHEN oa.value='OK'                  THEN '0' \
                        WHEN oa.value='ERROR_DOWNLOAD'      THEN '1' \
                        WHEN oa.value='ERROR_LTU'           THEN '2' \
                    ELSE NULL \
                END

在我的 python 代码中我是这样执行的:

db = sql.connect(**dbParams)
for query in QUERIES:
    db.query(QUERIES[query])
    result = db.store_result().fetch_row(how=1)

当我打印响应时,我想得到这样的东西:

({'COUNT(1)': 8932327L, 'value': 'OK'}, 
{'COUNT(1)': 526L, 'value': 'ERROR_DOWNLOAD'}, 
{'COUNT(1)': 14944L, 'value': 'ERROR_LTU'})

相反,它只给了我第一行:

({'COUNT(1)': 8932327L, 'value': 'OK'},)

【问题讨论】:

    标签: python python-2.7 mysql-python


    【解决方案1】:

    fetch_row 默认返回单行。试试这个:

    result = db.store_result().fetch_row(how=1, maxrows=0)
    

    【讨论】:

      猜你喜欢
      • 2015-10-06
      • 2013-10-15
      • 2021-12-24
      • 2011-11-20
      • 2011-05-15
      • 1970-01-01
      相关资源
      最近更新 更多