SELECT * FROM a, b WHERE ...
Mysql允許在查詢結果中重複列名稱。因此,在終端中,沒有任何列名使用上述查詢作爲前綴。force mysqldb dict光標返回前綴所有列名與表名
但是,我在DictCursor中使用python中的mysqldb。結果是列名稱是鍵的字典列表。有時,字典遊標會自動爲列名添加表名。據我所知,它爲兩個不明確的列名中的第二個做了這個,但只有當第二個值是唯一的。無論如何,我想強制光標前綴表名稱的所有鍵。
從mysqldb docs上fetch.row()函數...
第二個參數(如何)告訴它怎麼行應派代表參加。 默認情況下,它是零,表示作爲元組返回。如果= 1意味着, 將其作爲字典返回,其中鍵是列名稱,或者如果有兩個具有相同名稱的列(例如,從 連接),則返回table.column。 how = 2的含義與how = 1相同,只是鍵總是 table.column;這是爲了與舊的Mysqldb模塊兼容。
因此,它似乎是可行的,但我不直接使用fetch.row()函數...所以問題是,我怎麼可能會導致MySQLdb的字典光標總是使用如何= 2時它提取行?
我不不知道python,但是如果你在控制檯中運行查詢,你是否仍然得到含糊列的表前綴? – Karolis
@Karolis這是正確的問題,謝謝...對於初學者來說,它看起來像mysql允許重複的列名,所以它是最重要的部分mysqldb的東西。 – jmilloy