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函数来生成新字符串