如何在mysqldb中获取num结果

时间:2015-04-18 00:35:00

标签: python mysql

我有以下查询:

self.cursor.execute("SELECT platform_id_episode, title, from table WHERE asset_type='movie'")

有没有办法直接返回结果?目前我的效率很低:

r = self.cursor.fetchall()
num_results = len(r)

1 个答案:

答案 0 :(得分:3)

如果您实际上不需要结果, * 不要向MySQL询问;只需使用COUNT **

self.cursor.execute("SELECT COUNT(*) FROM table WHERE asset_type='movie'")

现在,您将返回一行,其中包含一列,其值为您的其他查询返回的行数。

请注意,我忽略了您的特定列,只是COUNT(*)COUNT(platform_id_episode)也是合法的,但它表示具有非NULL platform_id_episode值的已找到行的数量; COUNT(*)是已完成停止的行数。 ***


*如果您 需要结果......那么,您必须致电fetchall()或等同于获取结果,所以我不会看到问题。< /子>

**如果您以前从未在SQL中使用过聚合函数,请务必查看该页面上的一些示例;你可能从未意识到你可以如此简单(和有效)地做这样的事情。

***如果有人教你&#34;永远不要在*&#34;中使用SELECT,那么,这是一个很好的建议,但它是&#39 ;这里不相关。 SELECT *的问题在于,它会在您的结果集中以随机顺序对所有列进行垃圾邮件,而不是按照您需要的顺序实际需要的列。 SELECT COUNT(*)没有做到这一点。