Python 如何将几个MySQLdb fetch_all()调用的输出合并到一个列表中?

Python 如何将几个MySQLdb fetch_all()调用的输出合并到一个列表中?,python,Python,我有一个循环处理MySQLdb查询的输出: for item in getItems() . . . 其中getResults()返回游标的输出。fetchall() 如何修改getItems(),使其组合几个不同查询的fetchall()返回?也就是说,第一次查询的结果用完后,我希望循环开始处理第二次查询的结果。我不知道如何执行查询的详细信息,但类似的操作应该可以: [item for query in queries for item in execute(query)] >

我有一个循环处理MySQLdb查询的输出:

for item in getItems()
    . . . 
其中getResults()返回游标的输出。fetchall()


如何修改getItems(),使其组合几个不同查询的fetchall()返回?也就是说,第一次查询的结果用完后,我希望循环开始处理第二次查询的结果。

我不知道如何执行查询的详细信息,但类似的操作应该可以:

[item for query in queries for item in execute(query)]

<> > <代码>执行被假定为返回<代码>游标.FETAccess()/< > > /P> < P>如果两个查询都具有类似的列结构,则可以考虑使用MySQL将两个SQL查询结合使用结合关键字。

SELECT a, b, c
FROM table_x
UNION
SELECT d,e,f
FROM table_y
否则,将getItems定义为生成器可能更容易

def getItems():
    cursor.execute(query1)
    for row in cursor.fetchall():
        yield row
    cursor.execute(query2)
    for row in cursor.fetchall():
        yield row

gen = getItems()

for item in gen:
    ...

后者正是我所寻找的——某种让Python抓住并合并结果的方法。谢谢。