MySQL 具有空值的 where 子句

MySQL where clause with null values

我有这样的 sql 语句:

SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed, land.navn, kontaktdata.epostadresse
FROM hovedenhet 
LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer
LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
LEFT JOIN land on land.land_id = adresse.land_id
LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer
#where (adresse.adresseType=1)

我想包含行,即使某些值为空并且这适用于此代码,但是当我取消注释 where 子句时它不再包含空列。我试过 where (adresse.adresseType = 1 or adresse =null) 但没有效果。有什么解决办法吗?

试试这个:

SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed, land.navn, kontaktdata.epostadresse
FROM hovedenhet 
LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer
LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
LEFT JOIN land on land.land_id = adresse.land_id
LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer
where (adresse.adresseType = 1 or adresse.adresseType is null)

尝试使用

where (adresse.adresseType = 1 or adresse is null)

目前正在使用:

   SELECT hovedenhet.organisasjonsnummer, adresse.adresse , poststed.poststed, 
    land.navn, kontaktdata.epostadresse
    FROM hovedenhet 
    LEFT JOIN adresse on hovedenhet.organisasjonsnummer = adresse.organisasjonsnummer 
AND adresse.adresseType=1
    LEFT JOIN poststed on poststed.poststed_id=adresse.poststed_id
    LEFT JOIN land on land.land_id = adresse.land_id
    LEFT JOIN kontaktdata on kontaktdata.organisasjonsnummer = hovedenhet.organisasjonsnummer

感谢您的回答!