mysql - 根据 2 个匹配字段返回是或否值

标签 mysql sql insert sql-update

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

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

最佳答案

CONCAT 字符串为

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

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

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

关于mysql - 根据 2 个匹配字段返回是或否值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767842/

相关文章:

sql - 获取给定时间戳和 TZ 名称的 TZ 缩写

string - 使用 awk 或 send 查找字符串并在其前面插入另一个复杂字符串

php - MySQL错误: 'invalid use of a group function'

java - 如何在 Android 中实现基于距离的类似 tinder 的搜索?

mysql - 将一个表中的两个字段与另一个表中的 id 元素相匹配的 SQL 语句

Mysql INSERT ...重复键更新,如果值不同,否则删除

mysql - 列的组总和并插入

mysql - 错误 : "could not initailize master info structure" while doing Master Slave Replication in MySQL

mysql - 使用自动生成列的值进行后续查询

sql - LEFT JOIN WHERE 子句不为空