簡體   English   中英

如何用另一個表中的另一個值更新mysql列?

[英]How to update mysql column with another value from another table?

假設存在另一個名為“ project”的表,並且有兩個表與雇員輸出的“ projectId”列中“:”后面提到的編號相關,如何用項目名稱替換“ projectId”列中的值。

> select * from employee;
+----+-----------+
| id | projectId |
+----+-----------+
|  1 | project:1 |
+----+-----------+

所需輸出:

+----+-----------------------+
| id | projectId             |
+----+-----------------------+
|  1 | project:internProject |
+----+-----------------------+

所需步驟:

提取整數[done]

update employee SET projectId = substring_index(projectId,':', -1);

更新名稱為projectID的[不確定:(]

update employee SET projectId = concat('project:', select projectName from projects where projects.projectID = employee.projectId);

您需要在子請求周圍加括號。

update employee e
set projectId = concat('project:',
                       (select projectName
                        from projects
                        where projectId = substring_index(e.projectId, ':', -1)));

這應該做的工作:

UPDATE employee e, projects p
SET e.projectId = CONCAT('project:',p.projectName)
WHERE substring_index(e.projectId,':', -1) = p.projectID 

項目是一個常數還是會改變? 如果是這樣,您需要從員工那里接管

使用SUBSTRING_INDEXJOIN

詢問

update employee e
join project p
on e.id = p.id
set e.pid = concat(substring_index(e.pid, ':', 1), ':',
               p.pname);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM