王丛原
2021-07-09 14:28
采纳率: 100%
浏览 39
已采纳

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, 兄弟尼传参有问题。

    评论
    解决 1 无用
    打赏 举报
  • lulu无为 2021-07-09 17:32

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

    评论
    解决 1 无用
    打赏 举报
  • 王丛原 2021-07-10 06:04

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

    评论
    解决 无用
    打赏 举报
  • 王丛原 2021-07-10 06:18

    非常

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题