select *를 사용하여 쿼리에서 잘 작동하지만 열 이름도 쿼리하려고 할 때 작동하지 않습니다 (아마도 "FROM"이라는 열이 있기 때문에 그럴 수 있습니다). ?) 여기Python 2.7을 사용하여 mysqldb에서 열 이름을 얻는 방법은 무엇입니까?
내 코드 :
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'")
편집 : SHOW TABLE 테스트를 만들;
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()
또는 다른 당신은 열 이름을 얻을 "SHOW 열"
또는이를 사용할 수 있습니다 :
| 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 |
사용'backtick' \'주변 'select' 문에 열 이름을 입력 한 다음 –
을 실행하십시오. 오류 메시지는 요청하는 것과 별개로 문제가 있음을 나타냅니다. 티. 이 TEST 테이블은 어떻게 생겼을까요? 'SHOW CREATE TABLE TEST \ G' – Wodin
이것으로 코드를 업데이트했습니다! – Harley