Python MySqlDB store_result只返回一行

时间:2014-09-05 12:32:49

标签: python python-2.7 mysql-python

我使用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'},)

1 个答案:

答案 0 :(得分:1)

默认情况下,

fetch_row会返回一行。试试这个:

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