在前面,我在数据库课程中,可以使用提示来接近正确答案。

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/

10-12 00:02
查看更多