MIDASpanel 2021-07-09 14:28 采纳率: 83.3%
浏览 46
已采纳

python连接数据库mysql 实现表中数据的删除,sql语句报错

去掉for 循环 传入一个值的时候也是同样的报错。因为有很多条数据需要删除 for循环应该怎么写的 用delete from table_name where key in keylist 也是报错

img

  • 写回答

5条回答 默认 最新

  • blkq 2021-07-09 14:34
    关注

    ‘key_value’改成key_value,否则会被当作字符串而不是变量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 时代在召唤r 2021-07-09 14:41
    关注
    def execute(self, query, args=None):
        """Execute a query
    
        :param str query: Query to execute.
    
        :param args: parameters used with query. (optional)
        :type args: tuple, list or dict
    
        :return: Number of affected rows
        :rtype: int
    
        If args is a list or tuple, %s can be used as a placeholder in the query.
        If args is a dict, %(name)s can be used as a placeholder in the query.
        """
    

    可以看到第二个变量支持的类型有: tuple, list or dict, 兄弟尼传参有问题。

    评论
  • lulu无为 2021-07-09 17:32
    关注

    1、‘key_value’改成key_value,再看报错内容
    2、key_value 的内容是字符? 如果是字符,sql有问题 ,应该是 key = '%s'

    评论
  • MIDASpanel 2021-07-10 06:04
    关注

    这个问题已经解决
    首先“key_value ”确实应该是key_value
    但是依旧是存在问题。因为关于数据库中字段名key,它是mysql的保留字,需要用反引号把它引起来‘key’
    但是接下来就出现了代码执行不报错 数据库没有反映的问题 后里就把字段名key换成了其他的非保留字 就成功了。

    评论
  • MIDASpanel 2021-07-10 06:18
    关注

    非常

    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已采纳回答 7月9日
  • 创建了问题 7月9日

悬赏问题

  • ¥20 win10商店接入问题
  • ¥15 java 这种树形框吗
  • ¥40 找同学帮敲Python代码
  • ¥15 MYSQL 订单的商品明细重复计算问题
  • ¥15 微信实时共享位置修改
  • ¥100 TG的session协议号转成直登号号后客户端登录几分钟后自动退出设备
  • ¥50 共模反馈回路的小信号增益
  • ¥15 arduino ssd1306函数与tone函数放歌代码不兼容问题
  • ¥70 0.96版本hbase的row_key里含有双引号,无法deleteall
  • ¥15 诊断性META分析合并效能的检验