pycharm中如何将Mysql数据库表中重复的行删除,只保留第一个出现的数据,但不是根据主键删除,而是第一列数据,具体代码如何
时间: 2024-05-05 08:17:26 浏览: 121
删除数据库中重复的数据(只保留一条)
4星 · 用户满意度95%
在PyCharm中删除Mysql数据库表中重复的行,只保留第一个出现的数据,可以使用以下代码:
```python
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 获取游标
mycursor = mydb.cursor()
# 查询重复行
mycursor.execute("SELECT MIN(id), col1, col2, col3 FROM yourtable GROUP BY col1 HAVING COUNT(*) > 1")
# 获取需要删除的行的id列表
delete_ids = []
for row in mycursor.fetchall():
delete_ids.append(row[0])
# 删除重复行
for id in delete_ids:
mycursor.execute("DELETE FROM yourtable WHERE id = %s", (id,))
# 提交更改
mydb.commit()
# 关闭数据库连接
mydb.close()
```
其中,`yourtable`是要操作的表名,`col1`是第一列的列名。该代码会查询出所有重复的行,并且只保留第一个出现的数据。然后,获取需要删除的行的id列表,并且逐一删除这些行。最后,提交更改并关闭数据库连接。
阅读全文