如何在Python中使用MySQLdb模块覆盖聚合查询中的NULL值?
我正在用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]
提前谢谢你们!
编辑:如果值是空的,"print min_date"会输出"None"。我想用一个默认值,比如"2010-01-01",来替代它。
2 个回答
4
我可以在MySQL中使用子查询来完成这个,但我更想用Python来做。
你为什么说需要子查询呢?其实你可以直接用COALESCE函数:
"select COALESCE(max(date_val), 'your_default_value_here') from my_table;"
1
试试这个:
min_date = cur.fetchone()[0]
min_date = min_date if min_date is not None else default_value