如何使用Python在 SQL 表中查找重复值?
MySQL 服务器是一个开源的关系数据库管理系统,是对基于 Web 的应用程序的主要支持。数据库和相关表格是许多网站和应用程序的主要组成部分,因为数据是通过网络存储和交换的。为了从 Web 服务器访问 MySQL 数据库,我们使用Python中的各种模块,例如 PyMySQL、mysql.connector 等。
在本文中,我们将在数据库的特定 MySQL 表中查找重复值。首先,我们将连接到具有 MySQL 表的数据库。将要使用的 SQL 查询是:
SELECT * FROM table-name
GROUP BY col_1, col_2,..., col_n
HAVING COUNT(*) > 1;
如果表有主键,则也可以使用以下查询:
SELECT * FROM table-name
GROUP BY primar-key
HAVING COUNT(*) > 1;
上述查询只会在表中生成重复的行,然后这些行将作为输出显示。
下面是一些描述如何在数据库的特定 MySQL 表中查找重复值的程序:
示例 1
下面是数据库geek中的表Documentary ,它将被Python脚本访问:
下面是获取 MySQL 表中重复行的程序:
Python3
# import required module
import mysql.connector
# connect python with mysql with your hostname,
# database, user and password
db = mysql.connector.connect(host='localhost',
database='gfg',
user='root',
password='')
# create cursor object
cursor = db.cursor()
# get the sum of rows of a column
cursor.execute("SELECT * FROM Documentary \
GROUP BY Name, Production \
HAVING COUNT(*) > 1;")
# fetch duplicate rows and display them
print('Duplicate Rows:')
for row in cursor.fetchall(): print(row)
# terminate connection
db.close()
Python3
# import required module
import mysql.connector
# connect python with mysql with your hostname,
# database, user and password
db = mysql.connector.connect(host='localhost',
database='gfg',
user='root',
password='')
# create cursor object
cursor = db.cursor()
# get the sum of rows of a column
cursor.execute("SELECT * FROM Student \
GROUP BY Roll \
HAVING COUNT(*) > 1;")
# fetch duplicate rows and display them
print('Duplicate Rows:')
for row in cursor.fetchall(): print(row)
# terminate connection
db.close()
输出:
示例 2:
这是从给定数据库中的表中查找重复行的另一个示例,以下是表方案和行:
我们可以看到Roll属性是Student表的主键,因此它只能与查询中的GROUP BY语句一起使用来生成重复行,下面是从表Student中获取行数的Python脚本:
蟒蛇3
# import required module
import mysql.connector
# connect python with mysql with your hostname,
# database, user and password
db = mysql.connector.connect(host='localhost',
database='gfg',
user='root',
password='')
# create cursor object
cursor = db.cursor()
# get the sum of rows of a column
cursor.execute("SELECT * FROM Student \
GROUP BY Roll \
HAVING COUNT(*) > 1;")
# fetch duplicate rows and display them
print('Duplicate Rows:')
for row in cursor.fetchall(): print(row)
# terminate connection
db.close()
输出: