Python操作mysql数据库出现pymysql.err.ProgrammingError1064错误

操作:

def get_c1_data():
    sql = "select sum(confirm),"\
          "(select suspect from history order by ds desc limit 1),"\
          "sum(heal),"\
          "sum(dead)"\
          "from details"\
          "where update_time=(select update_time from details order by update_time desc limit 1)"
    res = query(sql)
    return res[0]

if __name__ == "__main__":
    print(get_c1_data())

错误如下:

C:\Users\bellis\AppData\Local\Programs\Python\Python37\python.exe E:/pycharm-workspace/Cov/utils.py
Traceback (most recent call last):
  File "E:/pycharm-workspace/Cov/utils.py", line 40, in <module>
    print(get_c1_data())
  File "E:/pycharm-workspace/Cov/utils.py", line 35, in get_c1_data
    res = query(sql)
  File "E:/pycharm-workspace/Cov/utils.py", line 23, in query
    cursor.execute(sql, args)
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\cursors.py", line 163, in execute
    result = self._query(query)
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\cursors.py", line 321, in _query
    conn.query(q)
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\connections.py", line 505, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\connections.py", line 724, in _read_query_result
    result.read()
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\connections.py", line 1069, in read
    first_packet = self.connection._read_packet()
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\connections.py", line 676, in _read_packet
    packet.raise_for_error()
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\protocol.py", line 223, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "C:\Users\bellis\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.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 update_time from details order by update_time desc limit 1)' at line 1")

看错误以为是sql语句写错了,可是找了半天也没发现,在网上看了好多解决方法也都不行,后来有人说是sql语句中的换行符有问题,试着换了一下还真就可以了,建议换行符最好用三个引号来,如下:

sql = """
	sql语句
"""
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值