SELECT * FROM a, b WHERE ...
Mysql 允许在查询结果中出现重复的列名。因此,在终端中,没有使用上述查询为列名添加前缀。
但是,我在 python 中使用 mysqldb 和 DictCursor。结果是一个字典列表,其中列名是键。有时,dict 游标会自动在列名前加上表名。据我所知,它对两个模棱两可的列名中的第二个执行此操作,但前提是第二个值是唯一的。无论如何,我想强制光标在所有键前面加上表名。
从 fetch.row() 函数的mysqldb 文档中......
第二个参数(how)告诉它应该如何表示行。默认情况下,它为零,这意味着作为元组返回。how=1 表示,将其作为字典返回,其中键是列名,如果有两个具有相同名称的列(例如,来自连接),则返回 table.column。how=2 的含义与 how=1 相同,只是键始终是 table.column; 这是为了与旧的 Mysqldb 模块兼容。
所以,这似乎是可行的,但我没有直接使用 fetch.row() 函数......所以问题是,如何让 mysqldb dict 游标在获取行时始终使用 how=2 ?