根据2个匹配字段返回yes或no值

时间:2013-04-02 15:17:36

标签: mysql sql insert sql-update

我有Previous Question根据2个表匹配的字段将值设置为yes或no。我试图让查询检查generalsource.firstinventor,如果它匹配inventor.inventorfull插入“是”或插入“否” 结果如下:

UPDATE i
SET LeadInventor = 
    CASE 
        WHEN fi.FirstInventorName IS NULL THEN 'No' 
        ELSE 'Yes' 
    END
FROM Inventor i
    LEFT JOIN FirstInventor fi
    ON i.InventorFirst + ' ' + i.InventorLast = fi.FirstInventorName

这非常有效,直到我尝试进入MySQL并且我无法弄清楚语法是否有错。我该如何解决?

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 Inventor i     LEFT JOIN FirstInventor fi     ON i.InventorFirst + ' ' + i.' at line 7

1 个答案:

答案 0 :(得分:2)

CONCAT字符串为

CONCAT( i.InventorFirst, ' ', i.InventorLast )

UPDATE:此外,您的更新语句中似乎存在语法问题,应该如下所示

UPDATE 
  Inventor i
  LEFT JOIN FirstInventor fi ON CONCAT( i.InventorFirst, ' ', i.InventorLast ) = fi.FirstInventorName
SET LeadInventor = 
    CASE 
        WHEN fi.FirstInventorName IS NULL THEN 'No' 
        ELSE 'Yes' 
    END

更多信息:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat