我有两张桌子。一个名为empdata,另一个名为empinfo。
empdata(原始员工数据) - 年龄栏有员工年龄。
empinfo(dev info side) - isUnderage是BIT 0/1 true / false列。
我试图创建以下if语句来更新整个表:IF员工不满17岁那么1 ELSE 0。
以下是我到目前为止使用MySql的错误:
empdata(原始员工数据) - 在名为" FileNumber"
的列下有员工IDempinfo(开发信息方) - 在名为" empid"
的列下具有相同的员工IDUPDATE isUnderage
isUnderage = CASE empdata.Age
WHEN empdata.Age > 17 THEN 1
ELSE 0
END,
FROM empinfo
答案 0 :(得分:1)
更新查询将如下所示:
UPDATE empinfo t1
INNER JOIN empdata t2
ON t1.empid = t2.FileNumber
SET t1.isUnderage = IF(t2.Age > 17, 1, 0);
答案 1 :(得分:0)
将UPDATE
与JOIN
和CASE
表达一起使用。
<强>查询强>
UPDATE empinfo t1
JOIN empdata t2
ON t1.empid = t2.FileNumber
SET t1.isUnderage = (
CASE WHEN t2.Age < 17 THEN 0 ELSE 1 END
);