如何不解压查询返回的所有内容?

How to not unpack all returned from a query?

我有以下查询(注意不是正常的 SELECT):

sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "

这个问题 returns 很多字段,我只需要前两个,查看完整代码:

sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "
self.cursor.execute(sql)
res = [(Db,Name) for(Db,Name,a,b,c,d,e,f,g,h,j) in self.cursor]

为了不出错,我需要添加所有那些我什么都不做的 a...j 变量。
如何以更简洁的方式编写此内容?

我正在使用 Mysql/Oracle

提供的连接器

尝试:

res = [(Db,Name) for(Db,Name,*_) in self.cursor]

元组解包中的 * 格式表示“一个 "catch-all" 名称,它将被分配一个未分配给 "regular" 名称的所有项目的列表。"

参考文献:

一开始不要将行解压缩到多个变量中。只需将行放入一个变量中,然后从中获取你想要的内容。

[(row[0], row[1]) for row in self.cursor]

或者甚至:

[row[:2] for row in self.cursor]