【MySQL】数据处理:从SQL批量删除报错到Python优雅解决

一、背景
MySQL数据库表中有一批重复的脏数据,为不影响正常业务,需要进行批量删除。

二、SQL批量删除
首先想到的是编写SQL语句来批量删除:删除身份证号为51****59且ID不为5的全部数据(保留ID为5的那一条数据)

DELETE 
FROM
    test_table 
WHERE
    id IN ( SELECT id FROM test_table WHERE id_card_no = "51****59" AND id != 5 );

运行结果:

删除失败,SQL语句运行时报错了

鉴于当时实际情况需要尽快删除脏数据,就没有在此做过多的考究,原因和解决详见第四小节:SQL运行问题排查

三、Python批量删除
数据准备
将SQL查询到的所有需要删除的数据ID保存到txt文件中

SELECT id FROM test_table WHERE id_card_no = "51****59" AND id != 5;

              

读取数据ID
def del_from_mysql():
    # 【读取数据ID】
    with open(file="新建文本文档.txt", mode="r", encoding="utf-8") as f:
        data = f.read()
        f.close()
    ids = data.split("\n")
    print(ids)


if __name__ == &#

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 06:30:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 06:30:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 06:30:04       87 阅读
  4. Python语言-面向对象

    2023-12-25 06:30:04       96 阅读

热门阅读

  1. UDP Ping程序实现--第3关:服务端模拟丢包事件

    2023-12-25 06:30:04       62 阅读
  2. Go map如何排序

    2023-12-25 06:30:04       61 阅读
  3. Leetcode 2977. Minimum Cost to Convert String II

    2023-12-25 06:30:04       66 阅读
  4. 算法练习Day21 (Leetcode/Python-回溯算法)

    2023-12-25 06:30:04       62 阅读
  5. 简单二分查找(C++算法)

    2023-12-25 06:30:04       65 阅读
  6. LeetCode 2703. 返回传递的参数的长度

    2023-12-25 06:30:04       53 阅读
  7. 前端---初始常用的 html 标签

    2023-12-25 06:30:04       65 阅读
  8. List 流的使用

    2023-12-25 06:30:04       52 阅读
  9. 【Python】Python 批量转换PDF到Excel

    2023-12-25 06:30:04       55 阅读
  10. UE 动画系统框架介绍及使用

    2023-12-25 06:30:04       59 阅读