You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Word/Excel/PDF文档中的大量ID导入SQL查询关联表值?

提取海量ID并关联SQL查询的实操方案

一、从不同文档提取ID

Excel文档

  • 直接定位ID列,选中后复制到新工作表,用「数据」选项卡的「删除重复值」清理重复项、空行,然后另存为UTF-8编码的CSV格式。20万条数据Excel完全能处理,不用担心性能问题。

Word文档

  • 如果ID是固定格式(比如纯数字、带USER_这类固定前缀):
    1. 按Ctrl+H调出查找替换,开启通配符匹配,输入ID格式规则(比如^#^#^#^#^#匹配5位数字ID),点击「查找全部」,选中所有结果后复制到Excel或TXT。
    2. 若ID分布杂乱,把Word另存为纯文本(.txt),用正则表达式提取:比如写个Python脚本,用re.findall(r'\b[A-Z0-9]{10}\b', open('doc.txt').read())(根据你的ID格式调整正则),一键导出干净的ID列表。

PDF文档

  • 可编辑PDF:直接全选复制到文本编辑器,按Word转文本后的正则方法提取ID。
  • 扫描版PDF:先通过OCR工具(如Adobe Acrobat、Tesseract)转成可编辑文本,再按上述方法提取。也可以用Python的pdfplumber库配合正则批量提取,适合大量PDF文件。

二、导入SQL并关联查询

核心思路是把ID导入临时表,再和目标表关联查询——20万条数据用临时表效率最高,能避免IN子句长度超限的问题。

以MySQL为例

  1. 创建临时表(根据ID类型调整字段,比如字符串/数字):
CREATE TEMPORARY TABLE temp_ids (
    id VARCHAR(20) NOT NULL PRIMARY KEY -- 假设ID是字符串类型
);
  1. 导入CSV文件(确保文件路径正确,且数据库有文件读取权限):
LOAD DATA INFILE '/path/to/your/ids.csv'
INTO TABLE temp_ids
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- 如果CSV带表头,忽略第一行
  1. 关联目标表查询:
SELECT 
    t.id,
    main_table.target_field1, main_table.target_field2 -- 替换成你需要的字段
FROM temp_ids t
JOIN main_table ON t.id = main_table.id;

其他数据库适配

  • SQL Server:用BULK INSERT代替LOAD DATA INFILE
  • PostgreSQL:用COPY命令导入CSV到临时表

备选方案(无文件导入权限时)

如果没法用批量导入命令,把ID分成每1000条一组,用脚本生成批量查询语句,示例Python代码:

import pymysql

# 假设ids是从文档提取的ID列表
ids = ['id001', 'id002', ...]
conn = pymysql.connect(host='你的主机', user='账号', password='密码', db='数据库名')
cursor = conn.cursor()

# 分批次查询
for i in range(0, len(ids), 1000):
    chunk = ids[i:i+1000]
    placeholders = ','.join(['%s']*len(chunk))
    sql = f"SELECT * FROM main_table WHERE id IN ({placeholders})"
    cursor.execute(sql, chunk)
    results = cursor.fetchall()
    # 按需处理结果(比如写入文件、打印)

conn.close()

关键注意事项

  • 提取ID后必须做数据清洗:删除重复值、空值、不符合格式的内容,否则会导致查询结果混乱。
  • 临时表用完可自动丢弃,不会占用永久存储。
  • 如果ID是数字类型,导入时不要转成字符串,避免关联匹配失败。

内容的提问来源于stack exchange,提问作者damnetime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:31:17