gpt4 book ai didi

mysql - 使用 NULL 值连接

转载 作者:行者123 更新时间:2023-11-29 23:48:22 25 4
gpt4 key购买 nike

MySQL JOIN 如何处理 NULL 值。由于大多数地址没有第二行地址,因此address2有很多NULL值。当我运行查询来根据地址1、地址2 和邮政编码匹配地址时,当仅地址1 和邮政编码匹配时,查询将不会返回正匹配。我已确保当两个表都为 NULL 时,address2 的值均为 NULL。因此,基本上为了运行查询,我运行了两个查询。

UPDATE target t
JOIN pl2.site2 s ON t.address1=s.address1 AND t.zip5=s.zip5
SET t.idsite=s.idsite
WHERE t.address2 IS NULL AND s.address2 IS NULL;

UPDATE target t
JOIN pl2.site2 s ON t.address1=s.address1 AND t.address2=s.address2 AND t.zip5=s.zip5
SET t.idsite=s.idsite;

这并不是一件很困难的事情。只是想更多地了解 SQL 的工作原理。也许还有另一种解决方案,我也不想将 columns=''(blank) 设置为 NULL。

最佳答案

您有几个选项来连接空字段。一种是使用 COALESCE 将空值转换为空白以进行比较:

UPDATE target t
JOIN pl2.site2 s ON
t.address1=s.address1 AND
COALESCE(t.address2,'')=COALESCE(s.address2,'') AND
t.zip5=s.zip5
SET t.idsite=s.idsite;

另一种选择是在 JOIN 中使用 OR:

UPDATE target t
JOIN pl2.site2 s ON
t.address1=s.address1 AND
t.zip5=s.zip5 AND
((t.address2=s.address2) OR (t.address2 IS NULL AND s.addresss2 IS NULL))
SET t.idsite=s.idsite;

关于mysql - 使用 NULL 值连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com