如何在python中使用MySQLdb模块覆盖聚合查询中的NULL值?

时间:2010-02-23 20:36:33

标签: python mysql

我使用MySQLdb模块从python中的MySQL数据库表中选择最大日期值。如果结果返回null,我想用默认值覆盖它。我可以使用子查询在MySQL中执行此操作,但更喜欢在python中执行此操作。

有关简单方法的任何建议吗?我认为这是一个简单的,但我是python的新手,所以我认为值得问。

到目前为止,这是我的代码:

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

提前致谢!

修改 如果值为null,则“print min_date”输出“None”。我想用默认值覆盖它,例如“2010-01-01”。

2 个答案:

答案 0 :(得分:4)

  

我可以使用子查询在MySQL中执行此操作,但更喜欢在python中执行此操作。

为什么你说你需要一个子查询?您可以使用COALESCE

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

答案 1 :(得分:1)

试试这个:

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