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

2 投票
2 回答
723 浏览
提问于 2025-04-15 19:38

我正在用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

撰写回答