我正在尝试提取多个不同于“%1%”、“%2%”和“%3%”字段的数据
但是,这些字段中的一个或多个很可能为 NULL,这导致它们在结果中被忽略。我也想要带有 NULL 值的结果。我看到 data1 = 5、data2 = 6 和 data3 为 NULL 的实例,并且这些记录未返回。
这是我的查询:
WHERE
region = 'AZ' and
year(date) = '2014' and
data1 not like '%1%' and
data2 not like '%1%' and
data3 not like '%1%' and
data1 not like '%2%' and
data2 not like '%2%' and
data3 not like '%2%' and
data1 not like '%3%' and
data2 not like '%3%' and
data3 not like '%3%'
最佳答案
在末尾添加 OR 子句
WHERE
region = 'AZ' and
year(date) = '2014' and
(
data1 not like '%1%' and
data2 not like '%1%' and
data3 not like '%1%' and
data1 not like '%2%' and
data2 not like '%2%' and
data3 not like '%2%' and
data1 not like '%3%' and
data2 not like '%3%' and
data3 not like '%3%'
OR data1 IS NULL OR data2 IS NULL OR data3 IS NULL
)
关于mysql - SQL 多个 NOT LIKE 可能包含 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542323/