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

如何在Microsoft Access中按姓名+手机号去重并保留一条记录?

解决Microsoft Access开发者表重复记录删除问题

问题分析

你的需求是保留**姓名(Name)+手机号(Cell Phone)**唯一的记录,删除其余重复项,但当前SQL存在两个核心问题:

  • GROUP BY包含了Affiliation和Position,只会识别四个字段完全重复的记录,无法覆盖「姓名+手机号相同但机构/职位不同」的场景
  • 子查询逻辑会选中所有重复实例,执行删除时会把同组的所有记录全部删掉,而非保留一条

解决方案

前提准备

确保Developer表有唯一主键(比如添加自动编号字段DeveloperID),这是精准区分不同记录的必要条件。

步骤1:先验证要删除的记录

先创建选择查询,确认待删除的记录范围(避免误操作):

SELECT d.*
FROM Developer d
WHERE d.DeveloperID NOT IN (
    -- 每个姓名+手机号组合,保留ID最小的那条(可替换为MAX保留最新记录)
    SELECT MIN(Tmp.DeveloperID)
    FROM Developer Tmp
    GROUP BY Tmp.Name, Tmp.[Cell Phone]
)

运行查询后,检查结果是否为你计划删除的重复记录。

步骤2:执行删除操作

确认无误后,将查询修改为删除查询:

DELETE d.*
FROM Developer d
WHERE d.DeveloperID NOT IN (
    SELECT MIN(Tmp.DeveloperID)
    FROM Developer Tmp
    GROUP BY Tmp.Name, Tmp.[Cell Phone]
)

关键提示

  • 用MIN(DeveloperID)或MAX(DeveloperID)指定同组记录的保留规则,按需选择即可
  • 操作前务必备份数据库,防止数据丢失
  • 若表中无主键,先通过设计视图添加自动编号字段DeveloperID,Access需要唯一标识来精准执行删除操作

内容的提问来源于stack exchange,提问作者Do Hun Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:40:12