2010-02-23 58 views
2

我使用MySQLdb模塊從python的MySQL數據庫表中選擇最大日期值。如果結果返回爲null,我想用默認值覆蓋它。我可以在MySQL中使用子查詢來做到這一點,但寧願用python來做。如何覆蓋python中使用MySQLdb模塊的聚合查詢中的NULL值?

任何建議在一個簡單的方法來做到這一點?我認爲這很容易,但我是python的新手,所以我認爲這值得提問。

這裏是我到目前爲止的代碼:

db=MySQLdb.connect(...) 
cur = db.cursor() 
cur.execute("select max(date_val) from my_table;") 
min_date = cur.fetchone()[0] 

提前感謝!

編輯: 「print min_date」如果值爲空則輸出「None」。我想用默認值覆蓋它,比如「2010-01-01」。

+0

當您打印'mid_date'時,您看到了什麼?你想要什麼?請不要評論。請更新您的問題並提供更多詳細信息。 – 2010-02-23 20:39:05

回答

1

試試這個:

min_date = cur.fetchone()[0] 
min_date = min_date if min_date is not None else default_value 
+0

這就是我正在尋找的。謝謝! – 2010-02-23 20:57:17

4

我可以在MySQL使用一個子查詢做到這一點,但我們更希望做的蟒蛇。

你爲什麼說你需要一個子查詢?您可以使用COALESCE

"select COALESCE(max(date_val), 'your_default_value_here') from my_table;" 
+0

你是對的。這是做這件事的好方法,但我很高興知道如何在python中做到這一點。謝謝! – 2010-02-23 20:58:04