平臺: MySQL Workbench 8.0 CE SQL: 5.5.57
我無法為以下任務創建正確的陳述句:
假設我們有一個表“部門”
| id | name | superior_dep_id |
_______________________________
1 | SM | null
2 | SMT | 1
3 | SMTE | 2
4 | SMI | 1
5 | SM | null
我剛剛添加了一個新部門“SM”,它將取代舊部門,僅在有效性方面,所以舊部門仍然保持不變。
現在我需要確定所有部門,其中包含舊departments.id的 atdepartments.superior_dep_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);
提前致謝。
uj5u.com熱心網友回復:
首先,我想您必須通過名稱識別最后插入的部門.id,跳過您插入的最后一個:
select departments.id from departments where name = 'SM' and departments.id <> 5 ORDER BY departments.id DESC LIMIT 1;
獲得部門 ID(將為 1)后,您可以更新欄位:
update departments set superior_dep_id = 5 where superior_dep_id = 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/467577.html
上一篇:使用復合主鍵查詢表,不包括特定行
