【发布时间】:2014-01-20 16:03:06
【问题描述】:
数据库 API 文档在这里http://www.python.org/dev/peps/pep-0249/#description
如果我在python中使用MySQLdb做Table Join,那么可能会出现问题,
def query_db(query, args=(), one=False):
cur = db.cursor()
cur.execute(query, args)
rv = [dict((cur.description[idx][0], value)
for idx, value in enumerate(row)) for row in cur.fetchall()]
return (rv[0] if rv else None) if one else rv
result = query_db ('select table1.name, table2.name from table1 inner join table2 on table1.id = table2.id', one=True )
print result
#{'name':'blah blah'}
最终结果将是一个只有一个键name的字典,那是因为cur.description没有表名的信息,只有表列名,所以table2.name覆盖了table1.name。
这是一个错误吗?
【问题讨论】:
标签: python mysql mysql-python