那如果有很多个这样的对比,怎样写更节省代码
时间: 2024-02-25 13:53:12 浏览: 20
如果需要对比的列比较多,可以使用一个函数封装上述代码,实现代码复用,例如:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('database.db')
# 创建游标
cursor = conn.cursor()
# 定义函数,对比两张表的多个列是否相同
def compare_columns(table1, column1, table2, column2):
# 查询 table1 中最新插入的行
sql = f"SELECT {column1} FROM {table1} ORDER BY id DESC LIMIT 1"
cursor.execute(sql)
value1 = cursor.fetchone()[0]
# 查询 table2 中最新插入的行
sql = f"SELECT {column2} FROM {table2} ORDER BY id DESC LIMIT 1"
cursor.execute(sql)
value2 = cursor.fetchone()[0]
# 比较两列数据
if value1 == value2:
print(f"{column1} 和 {column2} 相同")
else:
print(f"{column1} 和 {column2} 不同")
# 调用函数进行比较
compare_columns("table1", "col1", "table2", "col2")
compare_columns("table1", "col3", "table2", "col4")
# 关闭游标和数据库连接
cursor.close()
conn.close()
```
这段代码定义了一个 compare_columns 函数,该函数接受四个参数,分别为两张表的名称和要比较的列的名称。函数中使用 f-string 格式化字符串,将参数填入 SQL 查询语句中。然后获取查询结果并进行比较,输出比较结果。最后在代码中调用函数,传入需要比较的参数即可。这种方式可以节省代码量,提高代码复用性。