如果componentDidMount() {
this.mounted = true;
}
componentWillUnmount() {
this.mounted = false;
}
async asyncFunction {
if(this.isMounted){
setState(....);
}else{
return;
}
}
表中存在jdwf_orders_main
的值,我试图更新名为jaj_jno
的表。
我正在尝试使用jdwf_alien_jobs
来做到这一点,但是我似乎无法正确理解语法。
我的语法有什么问题。
IF EXISTS
答案 0 :(得分:1)
MySQL不支持您尝试的操作。它提供了另一种获得相同结果的方法:在单个UPDATE
查询中更新两个或多个联接表。
我无法测试,但是类似的东西应该起作用:
UPDATE jdwf_orders_main om
LEFT JOIN from jdwf_alien_jobs aj ON om.jom_job_no = aj.jaj_jno
SET om.jom_adv_name = IF(af.jaj_no IS NULL, 'IAM Noob', 'IAM OP')
WHERE om.jom_job_no = '7200000'
它在jdwf_orders_main
条件下将表om
(别名为jdwf_alien_jobs
)与aj
(别名为om.jom_job_no = aj.jaj_jno
)连接起来。
LEFT JOIN
确保左表(om
)中的所有行都出现在结果集中;如果某行在右表中没有匹配的行,则将右行的字段使用充满NULL
的行。
WHERE
子句仅过滤与要由om.jom_job_no = '7200000'
语句修改的条件UPDATE
匹配的行。
SET
子句使用om.jom_adv_name
函数计算的值更新jom_adv_name
(即jdwf_orders_main
表中的列IF()
)。
如果IF()
是'IAM Noob'
,则af.jaj_jno
函数将返回NULL
。当来自om
的行在af
中不存在任何匹配的行时,就会发生这种情况(请参见上面LEFT JOIN
子句的说明)。否则(当存在匹配行时),af.jaj_jno
不是NULL
,并且IF()
函数将返回'IAM OP'
。