python:MYSQLdb.如何获取列名而不在大表中执行select*?

Mac*_*nhe 9 python mysql mysql-python

我想得到一个表的列名,但其中有数百万个数据.所以我不能用:

cursor.execute("SELECT * FROM table_name")
print cursor.description
Run Code Online (Sandbox Code Playgroud)

在sqlite3中,我这样做

crs.execute("PRAGMA table_info(%s)" %(tablename[0]))
for info in crs:
    print info
Run Code Online (Sandbox Code Playgroud)

但这不适用于python mysqldb.谁知道怎么做?

ale*_*cxe 18

你可以使用SHOW columns:

cursor.execute("SHOW columns FROM table_name")
print [column[0] for column in cursor.fetchall()]
Run Code Online (Sandbox Code Playgroud)

仅供参考,这与使用基本相同desc:

cursor.execute("desc table_name")
print [column[0] for column in cursor.fetchall()]
Run Code Online (Sandbox Code Playgroud)


eba*_*arr 7

这样做的正确方法是使用"SHOW columns FROM table_name",您也可以简单LIMIT地在现有查询中添加:

cursor.execute("SELECT * FROM table_name LIMIT 0")
print cursor.description
Run Code Online (Sandbox Code Playgroud)