update语句上的MySQL语法错误

update语句上的MySQL语法错误,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我有最新的密码 UPDATE i SET LeadInventor = CASE WHEN gs.FirstInventorName IS NULL THEN 'No' ELSE 'Yes' END FROM patentdb.Inventor i LEFT JOIN patentdb.generalsource gs ON i.InventorFirst + ' ' + i.InventorLast = gs.FirstI

我有最新的密码

UPDATE i
SET LeadInventor = 
    CASE 
        WHEN gs.FirstInventorName IS NULL THEN 'No' 
        ELSE 'Yes' 
    END
FROM patentdb.Inventor i
    LEFT JOIN patentdb.generalsource gs
    ON i.InventorFirst + ' ' + i.InventorLast = gs.FirstInventorName
我不明白为什么它会抛出以下错误:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM patentdb.Inventor i     LEFT JOIN patentdb.generalsource gs     ON i.Invent' at line 7

FROM语句是MYSQL的下划线

这是因为FROM子句在MYSQL UPDATE语句中无效:

您的运气可能会更好:

UPDATE Inventor i, generalsource gs
SET i.LeadInventor = CASE
  WHEN gs.FirstInventorName IS NULL THEN 'No'
  ELSE 'Yes'
END
WHERE i.InventorFirst + ' ' + i.InventorLast = gs.FirstInventorName

语法不正确。请查看此查询:

UPDATE patentdb.Inventor i
  LEFT JOIN patentdb.generalsource gs
  ON CONCAT(i.InventorFirst, ' ', i.InventorLast) = gs.FirstInventorName
SET LeadInventor = 
  CASE WHEN gs.FirstInventorName IS NULL THEN 'No' ELSE 'Yes' END
另外,我想说的是,在MySQL中,最好使用CONCAT函数来生成新字符串