4
NUM結果我有以下查詢:如何獲得在MySQLdb的
self.cursor.execute("SELECT platform_id_episode, title, from table WHERE asset_type='movie'")
有沒有辦法得到的結果數直接返回?目前我在做低效:
r = self.cursor.fetchall()
num_results = len(r)
NUM結果我有以下查詢:如何獲得在MySQLdb的
self.cursor.execute("SELECT platform_id_episode, title, from table WHERE asset_type='movie'")
有沒有辦法得到的結果數直接返回?目前我在做低效:
r = self.cursor.fetchall()
num_results = len(r)
如果你實際上並不需要的結果,*不問MySQL的他們。只需使用COUNT
:**
self.cursor.execute("SELECT COUNT(*) FROM table WHERE asset_type='movie'")
現在,你會得到一個排,有一列,其值是行的其他查詢將有回報的多少。
請注意,我忽略了您的特定列,只是做了COUNT(*)
。 A COUNT(platform_id_episode)
也是合法的,但它表示具有非NULL platform_id_episode
值的發現行數; COUNT(*)
是找到的行數句號。 ***
*如果您做需要的結果......好吧,你必須調用fetchall()
或等於拿到他們,所以我沒有看到這個問題。
**如果您以前從未在SQL中使用過聚合函數,請務必查看該頁面上的一些示例;你可能從來沒有意識到你可以簡單(有效地)做這樣的事情。
***如果有人教你「從來沒有在SELECT
使用*
」,好,這是很好的建議,但在這裏是不相關的。 SELECT *
的問題在於,它會按結果集中的隨機順序來篩選所有列,而不是按您需要的順序實際需要的列。 SELECT COUNT(*)
不這樣做。