Mysql SQL:如何强制关系操作符考虑空值

Mysql SQL:如何强制关系操作符考虑空值,mysql,sql,where-clause,Mysql,Sql,Where Clause,我有两张桌子(表1和表2)。我想执行以下查询: UPDATE TABLE1 a,TABLE1 b SET a.desg=CASE WHEN b.attribute_id=74 THEN b.value ELSE a.desc END WHERE a.entity_id=b.entity_id; 但是我在表1中有一些行的实体id为空。 在评估时不考虑这些因素,其中a.entity\u id=b.entity\u id 我希望这个WHERE子句甚至可以考虑空值 我该怎么做?提前感谢。尝试使用类似

我有两张桌子(表1和表2)。我想执行以下查询:

UPDATE TABLE1 a,TABLE1 b
SET a.desg=CASE WHEN b.attribute_id=74 THEN b.value ELSE a.desc END
WHERE a.entity_id=b.entity_id;
但是我在表1中有一些行的实体id为空。
在评估
时不考虑这些因素,其中a.entity\u id=b.entity\u id

我希望这个WHERE子句甚至可以考虑空值


我该怎么做?提前感谢。

尝试使用类似

WHERE IFNULL(a.entity_id, 0) = IFNULL(b.entity_id, 0);

另一种解决方案也是
,其中COALESCE(a.entity_id,0)=COALESCE(b.entity_id,0)
返回第一次出现的非空值。使用此方法时,请确保没有实体实际具有
实体\u id=0
。@PeterLang谢谢,Peter!这就是为什么我说“类似”的原因,可能是对
表1
的两个引用是一个输入错误?表2中有多少记录(或别名为
b
)具有空的
实体id
属性id=74
?我希望是一个!
UPDATE TABLE1 a, TABLE1 b
SET a.desg = CASE WHEN b.attribute_id=74 THEN b.value ELSE a.desc END
WHERE a.entity_id=b.entity_id OR (a.entity_id IS NULL AND b.entity_id IS NULL)