0

我正在使用带有 MySQL/Connector 1.0.7 模块的 Python 3.2.3。如果 MySQL 查询返回空结果,有没有办法返回列名?

例如。假设我有这个查询:

SELECT 
`nickname` AS `team`,
`w` AS `won`,
`l` AS `lost`
WHERE `w`>'10'

然而,如果没有人超过 10 岁,它显然不会返回任何内容。现在,我知道我可以检查结果是否为None,但是,我可以让 MySQL 返回列名和 NULL 值吗?

如果您很好奇,我想知道这是否可能的原因是因为我正在根据列名动态构建字典。因此,如果没有人超过 10 岁,上述内容最终会看起来像这样......

[{'team':None,'won':None,'lost':None}]

看起来像这样,如果它发现 3 个超过 10 的团队......

[{'team':'Tigers','won':14,'lost':6},
 {'team':'Cardinals','won':12,'lost':8},
 {'team':'Giants','won':15,'lost':4}]

如果这种事情是可能的,那么我就不必在整个代码中编写大量异常检查,以防空字典到处都是。

4

1 回答 1

0

您可以先使用 DESC table_name,您应该在第一列中获取列名

此外,您已经知道 dict 中的键,因此您可以自己构建,然后在结果有值时将内容附加到它。

[{'team':None,'won':None,'lost':None}]

但是我看不出你为什么需要这个。如果你有一个list of dictionaries,我猜你会有 for 循环操作。For 循环不会对空列表执行任何操作,因此您不必担心异常检查

如果你必须做类似的事情,result[0]['team']那么你一定要检查是否len(result)>0

于 2012-10-19T11:34:25.020 回答