Python 报错 ProgrammingError: (1064, "You have an error in your SQL syntax; check## 标题
使用python进行连接数据库,编写sql出现报错ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',
但是在Navicat中sql可以跑出来,发现是 进位 的错误。
错误代码:
sql=("select LEFT(a.imsi,5) i,LEFT(a.mcc,3) m ,SUM(a.cdr_byte) zong_byte"
"from"
"(select distinct imsi,cdr_time,cdr_byte,country_desc,operator_desc,supplier_code,supplier_name,"
"`status`,mcc,iccid,cdr_end_time "
"from cdr_record where supplier_code=1003) a "
"GROUP BY i,m;")
出现报错:
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select distinct imsi,cdr_time,cdr_byte,country_desc,operator_desc,supplier_code' at line 1")
更改后的代码:
sql=("select LEFT(a.imsi,5) i,LEFT(a.mcc,3) m ,SUM(a.cdr_byte) zong_byte "
"from "
"(select distinct imsi,cdr_time,cdr_byte,country_desc,operator_desc,supplier_code,supplier_name,"
"`status`,mcc,iccid,cdr_end_time "
"from cdr_record where supplier_code=1003) a "
"GROUP BY i,m;")
在select最后一个字段和’from‘后分别加一个空格,就可以了。