MySQL:识别重复项并替换值 - 初学者
MySQL: Identify duplicates and replace values - beginner
平台: MySQL Workbench 8.0 CE SQL: 5.5.57
我无法为以下任务创建正确的语句:
假设我们有一个 table 'departments'
| 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
,并将它们替换为新的 departments.id = 5
。
| 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);
提前致谢。
首先,我想您必须识别最后插入的 departments.id 名称,跳过您插入的最后一个:
select departments.id from departments where name = 'SM' and departments.id <> 5 ORDER BY departments.id DESC LIMIT 1;
获得 departments.id(将为 1)后,您可以更新字段:
update departments set superior_dep_id = 5 where superior_dep_id = 1;
平台: MySQL Workbench 8.0 CE SQL: 5.5.57
我无法为以下任务创建正确的语句:
假设我们有一个 table 'departments'
| 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
,并将它们替换为新的 departments.id = 5
。
| 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);
提前致谢。
首先,我想您必须识别最后插入的 departments.id 名称,跳过您插入的最后一个:
select departments.id from departments where name = 'SM' and departments.id <> 5 ORDER BY departments.id DESC LIMIT 1;
获得 departments.id(将为 1)后,您可以更新字段:
update departments set superior_dep_id = 5 where superior_dep_id = 1;