首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL:识别重复值和替换值-初学者

MySQL:识别重复值和替换值-初学者
EN

Stack Overflow用户
提问于 2022-04-28 15:23:49
回答 1查看 58关注 0票数 0

平台: MySQL Workbench 8.0 CE SQL: 5.5.57

我在为下列任务创建适当的语句时遇到了困难:

假设我们有一张桌子“部门”

代码语言:javascript
运行
复制
| id | name | superior_dep_id |
_______________________________
  1  | SM   |  null          
  2  | SMT  |  1      
  3  | SMTE |  2 
  4  | SMI  |  1      
  5  | SM   |  null 

我刚刚增加了一个新的部门'SM‘,它将取代旧的部门,只是在有效性方面,所以旧的部门仍然保持不变。

现在,我需要标识所有部门,这些部门包含departments.superior_dep_id的旧departments.id = 5,并将它们替换为新的departments.id = 5

代码语言:javascript
运行
复制
| id | name | superior_dep_id |
_______________________________
  1  | SM   |  null          
  2  | SMT  |  1      <--- 5
  3  | SMTE |  2 
  4  | SMI  |  1      <--- 5
  5  | SM   |  null   <--- INSERT INTO 
                           departments(id, name, superior_dep_id) 
                           VALUES(5, SM, null);

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 15:51:53

首先,我想您必须识别插入的最后一个departments.id的名称,跳过最后一个插入的:

代码语言:javascript
运行
复制
select departments.id from departments where name = 'SM' and departments.id <> 5 ORDER BY departments.id DESC LIMIT 1;

在获得departments.id (将为1)之后,可以更新字段:

代码语言:javascript
运行
复制
update departments set superior_dep_id = 5 where superior_dep_id = 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72046393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档