在前面,我在数据库课程中,可以使用提示来接近正确答案。
在ticket_old
表中,有技术人员的名字和姓氏。只有两个唯一的名称。
在新的ticket
表中,我有一个tech_id
列,该列需要int
与在last_name
表中找到的技术的ticket_old
匹配。
我一直在尝试使用下面的代码来执行此操作,该代码成功执行并更新了0行。
UPDATE ticket,ticket_old
SET tech_id = (CASE WHEN ticket_old.techLast = 'name1' THEN 1
WHEN ticket_old.techLast = 'name2' THEN 2
END)
;
-edit,我还尝试了以下运行并更新0行的代码。
UPDATE ticket,
(SELECT techLast FROM ticket_old WHERE techLast = 'name1') as src
SET ticket.tech_id = 1;
最佳答案
比较两个值时
始终使用双等号:
SET tech_id =(在ticket_old.techLast =='name1'然后1的情况下
当ticket_old.techLast =='name2'然后2
结束)
我不确定是“名称”还是“名称”。尝试一下。
关于mysql - 基于没有连接的另一个表中的值更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47233397/