如何使用Python 2.7在mysqldb中获取列名称?

如何使用Python 2.7在mysqldb中获取列名称?,python,mysql,sql,mysql-python,Python,Mysql,Sql,Mysql Python,如果我使用select*from查询,它工作得很好,但是当我尝试查询列名时,它也不工作(可能是因为我有一个名为“from”的列,但这就是为什么我使用“from!”) 这是我的代码: connection = MySQLdb.connect(host='localhost', user='admin', passwd='', db='database1', use_unicode=True, charset="utf8") cursor = connecti

如果我使用select*from查询,它工作得很好,但是当我尝试查询列名时,它也不工作(可能是因为我有一个名为“from”的列,但这就是为什么我使用“from!”)

这是我的代码:

connection = MySQLdb.connect(host='localhost',
    user='admin',
    passwd='',
    db='database1',
    use_unicode=True,
    charset="utf8")
cursor = connection.cursor()
query = """ select ACTUAL_TIME, 'FROM, ID
    union all
    select ACTUAL_TIME,  FROM , ID
    from TEST
        into outfile '/tmp/test.csv'
        fields terminated by ';'
        enclosed by '"'
        lines terminated by '\n';
        """

cursor.execute(query)
connection.commit()
cursor.close()
我收到以下错误消息:

raise errorvalue
_mysql_exceptions.OperationalError: (1054, "Unknown column 'ACTUAL_TIME' in 'field list'")
编辑:显示创建表测试

| TEST | CREATE TABLE `TEST` (
  `ACTUAL_TIME` varchar(100) DEFAULT NULL,
  `FROM` varchar(100) DEFAULT NULL,
  `STATUS` varchar(100) DEFAULT NULL,
  `ID` int(10) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=76287 DEFAULT CHARSET=utf8 |
试试这个:

connection = MySQLdb.connect(host='localhost',
    user='admin',
    passwd='',
    db='database1',
    use_unicode=True,
    charset="utf8")
cursor = connection.cursor()
query = """ select 'ACTUAL_TIME', 'FROM', 'ID' -- add single quotes
    union all
    select `ACTUAL_TIME`, `FROM`, `ID`  -- add here backtick in column names
    from TEST
        into outfile '/tmp/test.csv'
        fields terminated by ';'
        enclosed by '"'
        lines terminated by '\n';
        """

cursor.execute(query)
connection.commit()
cursor.close()
或者,您可以使用它获取列名“ShowColumns”

或:


columns=cursor.description

结果=[{columns[index][0]:索引的列,枚举(值)中的列}游标中的值。fetchall()]


打印(结果)

选择
语句中的列名周围使用
倒勾
`然后执行错误消息表示存在与您询问的问题不同的问题。这个
测试表是什么样子的<代码>显示创建表测试\G
我用这个更新了我的代码!您使用的是由括起来的“”,您也尝试过吗?请再次检查冒号值名称,以区分大小写。我尝试过使用您的代码,但错误消息是相同的。我检查了列名称,确保其正确无误。在我的游标之后。执行(查询)部分?为游标中的列打印[columns[0]。fetchall()NameError:名称“columns”不正确defined@Rebecca21我的意思是
query=“”选择“实际时间”、“发件人”、“ID”联合所有人都选择“实际时间”、“发件人”、“ID”…
你介意为不太有经验的问题添加一些解释吗?
cursor.execute("SELECT * FROM table_name LIMIT 0")
print cursor.description