MySQL数据库里有个银行明细表,数据有几千万,包含几万长卡号的明细,怎么按照卡号批量导出数据为Excel文件,并且导出的文件以对应的卡号命名
时间: 2024-03-19 08:45:13 浏览: 129
可以使用Python的pandas库和MySQL的查询语句来实现按照卡号批量导出数据为Excel文件,并且导出的文件以对应的卡号命名的需求。
以下是大致的代码示例:
```python
import pandas as pd
import pymysql
# MySQL连接配置
host = 'localhost'
port = 3306
user = 'root'
password = 'password'
database = 'mydb'
# 连接MySQL
conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
# 查询不重复的卡号列表
sql = "SELECT DISTINCT card_number FROM bank_detail"
cursor = conn.cursor()
cursor.execute(sql)
card_numbers = [row[0] for row in cursor.fetchall()]
# 按照卡号导出数据为Excel文件,并以对应卡号命名
for card_number in card_numbers:
# 查询数据
sql = f"SELECT * FROM bank_detail WHERE card_number = '{card_number}'"
cursor = conn.cursor()
cursor.execute(sql)
data = cursor.fetchall()
# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=[i[0] for i in cursor.description])
# 将数据写入Excel文件中
excel_file = f"{card_number}.xlsx"
with pd.ExcelWriter(excel_file) as writer:
df.to_excel(writer, index=False)
```
需要注意的是,因为数据量很大,查询数据和导出Excel文件可能需要较长时间,请耐心等待。另外,以上代码仅供参考,具体实现还需要根据实际情况进行修改。
阅读全文