Python 如何将几个MySQLdb fetch_all()调用的输出合并到一个列表中?
我有一个循环处理MySQLdb查询的输出: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)] >
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抓住并合并结果的方法。谢谢。