gpt4 book ai didi

mysql - 从 Excel 导入到 SQL,并有条件检查重复项

转载 作者:行者123 更新时间:2023-11-29 16:13:54 25 4
gpt4 key购买 nike

我有大量数据存储在 PDF 文件中,我想将其转换为 SQL 数据库。我可以使用一些在线工具从 PDF 文件中提取表格。我也知道如何将其导入MySQL。但是:

该列表包含用户的姓名、出生日期和一些其他属性。用户也可能存在于其他 PDF 文件中。因此,当我要将下一个文件转换为 Excel 并将其导入 MySQL 时,我想检查该用户是否已存在于我的表中。这应该基于几个属性来完成 - 我们可能有相同的用户名,但出生日期不同,这可能是一个新记录。但如果所有选定的属性都匹配,则该特定用户将是重复的,不应导入。

我想我可以使用临时表中的副本来完成此操作,但不确定应该选择什么。假设用户名存储在 A 列中,出生日期存储在 B 列中,城市存储在 C 列中。在现有表中验证这些内容并在所有三者都与现有记录匹配时跳过复制的正确脚本是什么?

谢谢!

最佳答案

1-创建永久表

Create table UploadData
(
id int not null AUTO_INCREMENT,
name varchar(50),
dob datetime,
city varchar(30)
)

2- 将 Excel 中的数据导入到 SQL 数据库。这就是您在下面提到的 Sql Server 中执行此操作的方法,不确定 MySQL 但可能类似。你说你已经在问题中知道如何做到这一点,这就是为什么我没有指定 MySQL 的每个步骤

右键单击您的数据库,转到“任务”->“导入数据”,从:Microsoft Excel,到:您的数据库名称,选择“上传数据”表,(选中“编辑列”以确保列匹配),完成从 Excel 的上传到您的 SQL 数据库。

3-检查主表中是否存在数据,如果不存在,则添加。

CREATE TEMPORARY TABLE #matchingData (id int, name varchar(50), dob datetime, city (varchar(30))

INSERT INTO #matchingData
select u.id, u.name, u.dob, u.city
from main_table m
inner join UploadData u on u.name = m=name
and u.dob = m.dob
and u.city = m.city

insert into main_table (name, dob, city)
select name, dob, city
from UploadData
where id not in (select id from #matchingData)

4-不再需要UploadData表。所以:删除表UploadData

关于mysql - 从 Excel 导入到 SQL,并有条件检查重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55006302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com